Setting up Google Calendar Integration

Google Calendar Integration allows users sync agendas between Zapfloor and G Suite, either one-way (just viewing events created via Zapfloor on Google Calendar) or two-way (adding and editing events from both sides).

What's possible:

Having an integration with Google Calendar solves multiple issues for our customers:

      • One-way Integration:

        • Users can easily create, update or delete events via Zapfloor platform.

        • Bookings made in Zapfloor dashboard are automatically added to Google calendar.

        • You can view the events in Google Calendar but if you make any change to the reservation such as editing or deleting, the changes will not be reflected back in Zapfloor

      • Two-way Integration:

        • More convenient than one-way integration

        • Users can easily update and schedule events directly from Outlook.

      • We streamline booking across platforms G Suite integrates

        • When we integrate Google Calendar we make a link with all the different software providers as booking source to show occupancy, for example

          • meeting room screens, HVAC solutions,..

          • external booking platforms (e.g. Flexspace)

Intended users

      • Operator Users create, delete or update event details

      • Tenant Users and Visitors view event invites

Business rules

Requirements

      • Every meeting room must be linked to an email address

      • The email address must be a business email address linked to their Gsute.

      • Personal Gmail accounts aren't linked with this integration, which is out of scope.

      • The organizer of the booking must have business email account and can make reservations for people within the same organizations, but not for people outside of their organization. e.g. Operator can make a reservation for their staff, if the staff are part of the same gsuite account, but not foree people outside of it. it has to e within the same organization and not an external company or a personal gmail account. Then only the person with Fallback email can adjust the booking

Default Fallback email

      • The organizer needs to be the organizer of the booking, If the organizers' email is not a professional GSuite account, then the reservation will fallback to the default fallback email (which must have professional Gsuite account)

Syncing attributes

      • When an even is created in Zapfloor, there is a title and description. Thiose will be synced to Google Calendar. Also the other way only for 2-way integration.

Setting up by the operator

Creating resources

      • The operator need to create each meeting room as a resource

      • Operators need to add each meeting room as a resource in their Admin Google environment.

      • The email address must be a business email address linked to their Gsute.

      • Personal Gmail accounts aren't linked with this integration, which is out of scope.

      • To access their own admin google environment, they need to own ‘Administrator Account’

         
        1

         

      • They create resources in Directory > Building and resources > Manage resources > '+'

         
        2

         

      • Once the resources are added, Google automatically creates a calendar, which they can see on their left side bar, via Browse Resources. It takes a few minutes for Google to sync the new resources, if not visible they can refresh

        GG3
         
      • Operators need to tick the checkbox

        GG4
         
      • The resource is now visible on the left side of the calendar view.

        GG5
         

        Operators need to go to ‘Settings and sharing’ where they can copy the Calendar ID and paste it in Zapfloor

Google Calendar resource URL in Zapfloor

 

Calendar ID in Google is same as Google Calendar resource URL in Zapfloor

      • Google Calendar resource URL in Zapfloor is in My center > Meeting rooms > ‘Edit’ > Settings

         
        GG6
      • Click Save

         

Adding a meeting room via Google Calendar

      • Operators can add the meeting room booking

      • Once they select the meeting room, this will also be shown in Zapfloor

GG7


Automatically in Zapfloor

Authentication

      • Operators must connect Zapfloor with G Suite via OAuth 2.0 for secure log-in authentication

        • Zapfloor features a button for easy authentication initiation.

        • Clicking the button redirects users to Google for permission.

        • Users grant Google permission to read calendar, events, etc..

      • Zapfloor is retrieving data from Google Calendar through event watches on resource calendars (not private calendars)

Internal - technical - process

      1. zapfloor → gsuite

        1. In Zapfloor we create an OAuth connection in the setup phase per operator,

        2. We create one OAuth for all locations

      2. gsuite → zapfloor

        1. ZF automatically creates Webhook,

        2. in the setup phase. One OAuth for all operator’s locations

        3. when the operators fill in the resource URL per meeting room

        4. its webhook per meeting room

        5. the webhook has synk token

        6. and webook expires after 7 days

        7. zf is auto-refreshing and renewing the wh, when its expired, no action needed from the operator

        8. zf knows when its expired cause of GC expiration time, which is automatically renewed

        9. The first time we sync the wh, we retrieve all events that exist on that resource

          1. events are bookings, but are called events in Google

          2. the event (sometimes over 700 events) always over 700 events

          3. then we don't receive a sync token

          4. then we use pagination (explain), zf automatically goes to the last event and uses that sync token

    1. Fallback email address

      1. email address of organizer when user does not exist in gsuite