Connecting Google Workspace Calendar to Horizon

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

  1. Sign in to the Google Cloud Console.
  2. In the top navigation bar, click the project selector and choose New Project. Give it a name (e.g., Horizon Integration) and click Create.

  3. With your new project selected, go to APIs & Services > Library.
  4. Search for Google Calendar API and click Enable.
  5. Search for Admin SDK API and click Enable.

Part 2: Create a Service Account and Download a Key

  1. Go to APIs & Services > Credentials and click Manage Service Accounts.

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

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

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

  5. Click Add Key > Create new key, select JSON, and click Create. A JSON file will download — keep it safe.
  6. Open the downloaded JSON file. You will need the client_email value (your Service Account Email) and the private_key value.
  7. 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

  1. Sign in to the Google Admin Console as a Super Admin. [This is NOT the same as Google Cloud Console!]
  2. Go to Security > Access and data control > API controls, then click Manage Domain Wide Delegation.
  3. 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
  4. 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

  1. In Horizon, go to Admin > Calendars > Configuration.
  2. Click Edit and set the provider to Google Workspace.
  3. Enter the Service Account Email (the client_email from your JSON file -- it will end with iam.gserviceaccount.com).
  4. 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.]
  5. 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.
  6. 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

    • 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 ...