Workplace Calendar Service for Gcal V1
Overview
Using our integration with Google Calendar, you can easily integrate Eptura Workplace reservations with reservations added directly in Google Calendar, allowing you to book and track reservations created using either method. When this integration is enabled, rooms booked in the Reservations module will display directly in Google Calendar, which can help your employees stay on top of their meeting schedules. In addition, any updates made to reservations in Eptura Workplace are automatically reflected in Google Calendar, reducing the potential for overbooking.
Using our Reservations module and Hummingbird mobile app, you can easily book conference rooms and workstations in your space. This integration allows clients who are currently using Google Calendar to have the existing processes work in tandem with Eptura Workplace.
What Is Needed?
-
A project defined in Google Console that will serve as the hub that connects Google Calendar to Eptura Workplace. For the connection to be successful, you will need to define the following: Service Account and private key, Google-verified endpoint, the administrator of the G-Suite Domain, and the Add Calendar API.
-
A list of room addresses and the corresponding Eptura Workplace room, floor, and building. This list must include a mapping of centers and credential tokens for each center. An Eptura Workplace representative will assist you with the creation of this list.
-
Have more questions about the integration then see Google Calendar Integration FAQs below.
Additional Requirements
Due to permission limitations, you must be consistent when creating and updating reservations using Google Calendar integration. Reservations created in Eptura Workplace must be updated using Eptura Workplace; similarly, reservations created in Google Calendar must be updated using Google Calendar. Simply select your preferred method for creating and updating reservations and be consistent with your process.
Set up the Goolge Calender Integration
Use the following procedures to integrate your Eptura Workplace site with Google Calendar. You will need to be logged in as a Super Administrator to complete the following steps.
Create a New User
- Log into the G Suite Admin Console.
- Click the Users option.
- Select the Add new user option.
4. Fill in the required information. Please note we recommend using iOFFICE_calendars@yourdomain.com For this guide we will use iOFFICE_calendars@iOFFICE.io. We will refer to this as a management account.
Create Room Resources
To create a room resource first log into the G SUITE Admin Console. Then do the following steps.
- Click the navigation bar.
- Select Apps.
- Choose G Suite.
- Click the Calendar selection box.
- Select Resources.
- Choose a Building.
- Create a new room resource.
- Fill out the required information.
Share with the management account
When the room resources are established the next step is to share them with the management account. This requires a two-step process which is subscribing to the room resource calendar and then sharing it with the management account. To subscribe to the room resources do the following steps below.
- Log into the management account.
- Navigate to the Calendars.
- Click the icon next to Other Calendars.
- Select Browse resources from the menu.
- Choose the building where the resource is located.
- Click the resource.
Assign permission to the resource calendar
The next step is to assign read and write permissions to the management account. To do so follow the steps below.
- Log into the super administrator account.
- Under the My calendars section hover over the room resource calendar.
- Click the More Actions icon.
- Under the Share with specific people section click add people.
- Add the management account.
- Allow the account to Make changes to and manage sharing.
- Click the Send button.
The account will now have write permissions to the resource calendar. If you log back into the management account and if the resources are under the My Calendars section then it was successfully added. If it is appearing under Other Calendars then the account does not have write permissions but read permissions only.
Sync to Eptura Workplace
The next step is to then share the calendars with Eptura Workplace. To do so follow the steps below. Please note that you only have to do these steps once. If the integration has already been set up for another reservation center then the Sync to Google Calendar option will need to be checked for the other reservation centers.
- Log into Eptura Workplace
- Navigate to the reservation preferences
- Scroll to the bottom of the preferences and check the Sync To Google Calendar checkbox.
- Select the Google sign-in button.
- Click the Sign in with Google button.
- A prompt will ask you to allow Eptura Workplace access to the calendar, click Allow.
- You will be redirected to the preferences page with new options under the Sync to Google Calendar section.
- Click the Refresh Calendar Watchers.
Congratulations! Google Calendar is now synched with Eptura Workplace. Any reservations made within Google should now propagate to Eptura Workplace and vise versa.
Google Calendar FAQs
Refer to the following frequently asked questions for information on commonly encountered questions when setting up Google Calendar integration for your environment.
- Q. What is the normal flow from reserving a room in Eptura Workplace and the reservation displaying in Google Calendar?
Using the client's Google credentials, we connect to the calendar via the Calendar API by impersonating the room being reserved. Once that connection is made, the room resource then invites the currently logged in user, and any attendees added onto the reservation.
- Q. What kind of permissions does the service account need?
The service account needs access to all rooms in the integration, in addition to needing the ability to edit room calendars.
- Q. Why do you handle permissions through a service account?
Eptura Workplace's approach is in line with the principle of least privilege and is specifically designed to limit the amount of access we have to your user information. We use a service account so you have complete control over the resources you want to define as in scope, providing you with complete control and visibility into the integration. We feel this approach is preferable as it limits our access to only what is required to complete the scoped tasks, and nothing more.
- Q. Why does the Calendar API scope need to be included in the project?
There are two parts to the communication process in Google Calendar: 1) the Calendar API used to communicate and 2) the service account that is authorized to communicate as defined in the project. The Calendar API needs to be activated for both the project and the service account (client) so this communication can take place. Once defined, the project makes calls using the Calendar API and the service account (client) is authorized to carry out those API calls on the room resources defined as in scope for the service account. Click here for more information on the Calendar API.
We are aware that there are other methods of defining this process within Google Calendar; however, those methods require businesses to allow third-party providers a higher level of access that includes the following:
1. See and download all of your Google Account email addresses (this means everyone!)
2. Manage the calendar settings of users on your domain (this is access to all user calendars)
3. See and download your contacts (ability to view and/or download all of your contact information)
4. See, edit, share, and permanently delete all the calendars you can access using Google Calendar (total deletion of all calendars certainly wouldn't be ideal, and remember, you are agreeing to grant manager permissions to all user calendars on your domain using this permission structure, so saying "all the calendars you can access" is the same as saying all the calendars on your domain)
When granting these permissions, Google even warns you to make sure you trust the company asking for these super privileges within your environment. At Eptura Workplace, we believe that we should only have the access that is required and nothing more. Using the Calendar API and service account method, we limit our control and available access within your environment to only the calendar resources you explicitly grant to the service account. We believe this approach limits the potential for issues on both sides of the integration since we more clearly define the scope of access, allowing us to completely avoid your user calendars and focus on only the required room resources.
- Q. Does granting access to the Calendar API give it access to all user calendars?
No. By design, we do not want direct access to your user calendars. The Calendar API scope is limited as follows: "See, edit, share, and permanently delete all the calendars you can access using Google Calendar." This means that so long as the Service Account is only granted access to the room resources, user calendars are not visible to the service account and the service account cannot perform changes on user calendars. Furthermore, there are additional checks beyond the API scope that prevent the service account from using the API to perform actions on calendars that are not explicitly defined.
- Q. Why do you require us to allow external sharing for primary calendars?
Because Eptura Workplace's access is limited, we need this permission to be able to manage room resource calendars using the service account. It should be noted that simply allowing external sharing as an option does not automatically share all information externally. The only other way to provide for this level of access is to make a third-party a super-user as described above, with control over all your user calendars by default.
If your organization does not allow employees to share their calendar externally, we recommend enforcing this control through policy rather than using the External Calendar Sharing setting.