Connecting Google Workspace Calendar to Horizon
Overview
This article walks you through creating a Google Cloud service account with domain-wide delegation and entering its credentials in Horizon so that Horizon can read your technicians' Google Calendar events for scheduling purposes. This replaces the need for your users to perform OAuth authentication on a calendar-by-calendar basis.
Prerequisites
- Super Admin access to your Google Workspace Admin Console
- Access to the Google Cloud Console
- Administrator access to Horizon
Steps
Part 1: Create a Google Cloud Project and Enable APIs
- Sign in to the Google Cloud Console.
- In the top navigation bar, click the project selector and choose New Project. Give it a name (e.g., Horizon Integration) and click Create.

- With your new project selected, go to APIs & Services > Library.
- Search for Google Calendar API and click Enable.
- Search for Admin SDK API and click Enable.
Part 2: Create a Service Account and Download a Key
- Go to APIs & Services > Credentials and click Manage Service Accounts.

- On the service accounts screen, click Create Service Account.

- Enter a name (e.g., Horizon Calendar Sync) and click Create and Continue. Skip the optional role and user access steps and click Done.

- Click the service account you just created, then go to the Keys tab.

- Click Add Key > Create new key, select JSON, and click Create. A JSON file will download — keep it safe.
- Open the downloaded JSON file. You will need the
client_email value (your Service Account Email) and the private_key value. - Click on the Details tab and copy the Unique ID (a long numeric value) — you will need it in Part 3.
Part 3: Grant Domain-Wide Delegation
- Sign in to the Google Admin Console as a Super Admin. [This is NOT the same as Google Cloud Console!]
- Go to Security > Access and data control > API controls, then click Manage Domain Wide Delegation.
Click Add new, paste the Client ID from Part 2, and add the following OAuth scopes (comma-separated):
https://www.googleapis.com/auth/calendar.readonly,https://www.googleapis.com/auth/admin.directory.user.readonly
- Click Authorize to save and close the form.
Note: Domain-wide delegation changes typically take effect within a few minutes but may take up to 24 hours to propagate across all users.
Part 4: Enter Credentials in Horizon
- In Horizon, go to Admin > Calendars > Configuration.
- Click Edit and set the provider to Google Workspace.
- Enter the Service Account Email (the
client_email from your JSON file -- it will end with iam.gserviceaccount.com). - Enter the Workspace Admin Email — a Super Admin email address in your Google Workspace domain (e.g., admin@yourdomain.com). This is used for domain-wide delegation. [If this account is deactivated in the future, you need to update this screen with a new Google Workspace admin email.]
- Paste the full Private Key from your JSON file, including the
-----BEGIN PRIVATE KEY----- and -----END PRIVATE KEY----- lines and \n in the string. That is, copy EVERYTHING inside the quotes. - Click Test Connection to verify, then Save.
Part 5: Map Users to Calendars
Once Horizon has completed it's calendar discovery process, you will need to map User's to their Calendars via Admin>People&Teams>Users.
Result
Once saved, Horizon will begin syncing your technicians' Google Calendar events every 15 minutes. These events are used in scheduling to avoid booking conflicts with existing appointments. The first sync may take up to an hour.
Related Articles
Related Articles
Connecting Microsoft 365 Exchange to Horizon
Overview This article walks you through registering a Microsoft 365 app in Azure and entering its credentials in Horizon so that Horizon can read your technicians' Exchange calendar events for scheduling purposes. Prerequisites Global Administrator ...
Connecting Autotask to Horizon
Overview This article walks you through creating an Autotask API user with webhook access and entering its credentials in the Horizon onboarding wizard. Prerequisites Administrator access to your Autotask account The Horizon onboarding wizard open ...
Connecting Zoho Desk to Horizon
Overview This article walks you through creating a Zoho Desk OAuth application and entering its credentials in the Horizon onboarding wizard. Prerequisites Administrator access to your Zoho Desk account The Horizon onboarding wizard open and on the ...
Connecting ConnectWise Manage to Horizon
Overview This article walks you through creating a ConnectWise Manage API member and entering its credentials in the Horizon onboarding wizard. Prerequisites Administrator access to your ConnectWise Manage account The Horizon onboarding wizard open ...
How Inbound Webhooks Work in Horizon
What Are Inbound Webhooks? Inbound webhooks let external systems — like your PSA, Zapier, or n8n — send data to Horizon in real time. When something happens in an external tool (a ticket is updated, a form is submitted, a rule fires), that tool sends ...