Google Workspace: Service Account (Application Credentials)
This method uses a Google Cloud service account with domain-wide delegation to access room calendars. Credentials are entered once during device linking and encrypted for each device. No interactive sign-in is required on the device itself.
You will need access to the Google Cloud Console and the Google Admin Console with Super Admin privileges.
- Create a Google Cloud project
- Create a service account
- Enable the Google Calendar API
- Grant domain-wide delegation
- Create a service account key
- Configure Fishbowl
Before starting, make sure you have Calendar resources set up. See Google Workspace Configuration for instructions.
1. Create a Google Cloud project
If you already have a Google Cloud project, you can skip this step.
- Go to the Google Cloud Console.
- Click the project dropdown at the top of the page and click
New Project. - Enter a project name (e.g. "Fishbowl") and click
Create. - Make sure the new project is selected in the project dropdown.
2. Create a service account
- In the Google Cloud Console, navigate to
IAM & Admin > Service Accounts. - Click
+ Create Service Account. - Enter a name (e.g. "Fishbowl Calendar Access") and an optional description.
- Click
Create and Continue. - You can skip the optional "Grant this service account access to project" and "Grant users access to this service account" steps. Click
Done. - On the Service Accounts list, note the email address of the service account you just created (e.g.
[email protected]). You will need this in a later step.
3. Enable the Google Calendar API
- In the Google Cloud Console, navigate to
APIs & Services > Library. - Search for "Google Calendar API".
- Click on
Google Calendar APIand then clickEnable.
4. Grant domain-wide delegation
This step authorises the service account to access calendars in your Google Workspace domain.
- In the Google Cloud Console, go to
IAM & Admin > Service Accounts. - Click on the service account you created.
- Click on
Advanced settingsor go to theDetailstab. Find and copy the Client ID (a numeric value). - Open the Google Admin Console in a new tab.
- Navigate to
Security > Access and data control > API controls. - Click
Manage Domain Wide Delegation. - Click
Add new. - In the Client ID field, paste the Client ID you copied from the service account.
- In the OAuth scopes field, enter:
https://www.googleapis.com/auth/calendar, https://www.googleapis.com/auth/calendar.events - Click
Authorize.
5. Create a service account key
- Go back to the Google Cloud Console.
- Navigate to
IAM & Admin > Service Accounts. - Click on the service account you created.
- Go to the
Keystab. - Click
Add Key > Create new key. - Select
JSONas the key type and clickCreate. - A JSON file will be downloaded. Keep this file safe. It contains the private key that grants access to your calendars and cannot be downloaded again.
6. Configure Fishbowl
- When linking devices on the Fishbowl web dashboard, select
Googleas the calendar type. - Select
Service Accountas the authentication method. - Enter an impersonation account. This is the email address of any user in your Google Workspace domain with appropriate read and write permissions. We recommend creating a user for Fishbowl specifically. The service account will impersonate this user to access room calendars.
- Paste the contents of the JSON key file you downloaded in the previous step.
- For each device, enter the Calendar ID of the room resource. You can find this in the Google Admin Console under
Apps > Google Workspace > Calendar > Resources, or in Google Calendar by opening the resource calendar's settings and looking for the "Calendar ID" field (it usually looks like[email protected]).