Google Workspace (formerly G Suite) admins can let specific outside domains book one or more of their company's resource calendars. The setup has 2 parts.
This setup uses IT tools. The Google Admin console does not show the ACL settings in this guide, so you make these changes with the Google Calendar API. Robin recommends Postman (free) to manage the API requests. Postman lets you batch requests and save templates for later.
Everything in this article uses only the Google Calendar API. Robin tokens do not work in the requests below.
Add an ACL for an outside domain
Run the API request below for each calendar that you want outside domains to access. Replace the highlighted fields with the resource calendar email and your app token or API key credentials from OAuth.
Get an access token from Google
To get a temporary access token, use Google's OAuth 2.0 Playground. In Step 1, enter https://www.googleapis.com/auth/calendar to allow Calendar access and select "Authorize". Continue until you see the "Access Token". Copy that token, and check "Auto-refresh" so that it does not expire within 10 minutes.
Use this token to set the accessToken environment variable in Postman. You can then send the request.
Robin knows of no way to apply this ACL to all resource calendars at once. To apply it in a batch, loop through the results of the CalendarList API.
POST https://www.googleapis.com/calendar/v3/calendars/{{resource_email}}/acl
Authorization: Bearer {{your_access_token}}
{
"scope": {
"type": "domain",
"value": "{{your_domain}}"
},
"role": "freeBusyReader"
}This request gives all users of the domain (for example, "example.com") the freeBusyReader permission on your resource calendars. They get read-only access to resource availability in your account.
Changes to resource ACLs can take some time to apply, so the update may not work at once.
Allow users to book free/busy resources
If you created your Google Workspace account after January 12, 2016, skip this step. Google made this setting the default.
Users can invite these resources to meetings only if you allow free/busy resource booking on your Google Workspace account. Otherwise, the resources reject the invite at once. To turn it on:
- In the Google Admin web portal, go to Apps > Google Workspace > Calendar > Resources.
- Check "Allow users to book resources that are shared as See only free/busy."
After these 2 changes, users from allowlisted outside domains can book as themselves in Robin. This permission should be enough to invite the resource to a meeting from that domain, even if the user belongs to a different Google Workspace account.
References
- Updating a calendar's ACL (Google Calendar API)
- Adding a new calendar ACL (Google Calendar API)