Setting permissions for editing calendar events

FYI: This guide commonly helps clear up permissions-related issues with Google calendar. This can include issues booking from the plugin or room display (unable to check-in, end, extend meetings), which use separate user permissions.


Overview

By default, only events booked through Robin will be able to auto-extend and end early. To enable these features with any event booked on your domain's calendars (including employees), you will need to give your booking account (i.e. booking@yourdomain.com) a few extra permissions.

A quick analogy: If you hired a new employee you would be able to see their calendar and invite them to meetings, but you wouldn't be able to change their schedule unless they gave you permission to edit their calendar directly (or you have it via admin powers). In this case, your new "employee" is a room.

Skip to the action

Once the booking user is connected to Robin, no users will (or should) ever need to sign into the booking account. Robin uses an OAuth flow for connecting to the account, which generates an app token limited to calendar permissions and is unaware of any other permissions the connected account might have. We strongly recommend not sharing these credentials internally.

How Robin manages calendars

For most events, Robin will try to update the event organizer's calendar when meetings end early, extend, etc. This has a few nice benefits over just updating the room resource's version. Here's an average use case:

Alice schedules a 60 minute meeting on her calendar and invites the conference room. By some miracle, it ends 30 minutes early. She presses "End Meeting" on the room display on her way out of the room. Robin adjusts her calendar event to end at the current time, which then updates everyone's (including the conference room's) schedule.

By adjusting the organizer's event instead of just the room's copy, everyone invited will also get the update. This mean's Alice's calendar will always reflect her actual availability for co-workers. You can imagine a similar scenario for clearing everyone's schedules when a meeting is canceled due to no-shows.

For events booked through Robin (i.e. room displays, web, mobile apps) the booking user will be the organizer on your behalf and these permissions are given by default. If Robin is unable to edit the organizer's event for some reason, it will fall back to updating the room calendar's version.

How to set up permissions for the booking user 

There are two ways you can provide the booking user with the correct permissions:

OPTION #1: (Recommended) Give your booking user Super Admin privileges.

OPTION #2: Share your calendar resources with the booking user.

Watch the video tutorial below or follow the step-by-step instructions listed below for both options. 

Option #1: Give the booking user super admin privileges

FYI: You do not have to give your booking user super admin privileges to use Robin, however it will make managing permissions much easier.

Give your booking user "Super Admin" privileges in G Suite. This will allow it to edit all resources and user calendars in your Google account instead of requiring each to grant permissions explicitly. To do this:

1. Log in to your Google admin account.   

2. In the menu on the left, select Account > Admin roles. 

3. Hover next to Super Admin > Select Assign Admin. 

2023-06-23_15-02-51.png

4. Select your booking user from the list or click Assign users at the top to search for your booking user and assign the Super Admin role.  

2023-06-23_15-18-26.png

Heads up

According to Google, after assigning the super administrator role to a user, it may take up to 2 weeks for those permissions to take effect. 

 

Option #2: Share managed calendars with the booking user directly

1
Open Google Calendar. In My Calendars on the left, find the resource calendar you want to allow users in Robin to edit. If it's not already there, add the resource to your "My Calendars" list.
2
Click on "Settings and sharing" next to the calendar you'd like managed in Robin. 

Screen_Shot_2018-03-07_at_2.03.29_PM.png

3
Under the "Share with specific people" section, add your organization's booking account by email. Under the permissions dropdown, pick "Make changes and manage sharing".
make_changes.png
4
Now Robin will be able to automatically edit events on the calendar's behalf. Repeat for all of your resource calendars. 

 

FAQ:

Q: What kind of permissions does Robin have through the booking user?

The app token Google gives Robin via OAuth is limited to just calendar permissions, so you don't have to worry about the machines taking over. Put another way, Robin has no ability to use that token for anything other than calendar operations. You can see the exact list of permissions here.

This is the easiest route. You can choose to individually assign permissions, but Super Admins are the only role capable of editing all calendars without user-level configuration.

Q: Can't I just assign global edit permissions instead?

With custom roles, it is possible to have global read rights, but unfortunately, there's no equivalent option for editing calendars. By default, editing has to be manually set on a per calendar basis. The exception is the super admin role, which can edit everything.

In Google, only the people listed under the "Share this calendar" section with "Manage sharing and edit events" permissions can update that calendar's events. If you were the booking user, and you added a new meeting room calendar, that booking user doesn't automatically get the permission to edit that room's events (unless it is the organizer).

Q: What happens if I don't use a super admin?

Without proper permissions to edit, your booking user may be unable to update or end certain events early.

Events will still show up and update as expected, and you can continue to use the app exactly as you are today. You can also use the more manual delegation approach in the next section. In the future, we plan to release a Marketplace app that will make these permissions easier to configure.

Did this article help?