Squadbase logo

Google Calendar

Steps and required credentials to connect Google Calendar to Squadbase

Required Information

FieldDescription
Google Cloud Service Account JSONAn authentication key file for accessing Google services. This JSON file is issued in Google Cloud and is used by Google to identify which application is using the API.

How to Obtain Each Value

Google Cloud Service Account JSON

Issue a Google Service Account for the integration.

A Google Service Account is a dedicated account for "systems" such as programs or applications (not humans) to use Google services.

Open Service Accounts

Log in to Google Cloud Console and in any project, select "IAM & Admin" → "Service Accounts" from the menu.

Opening Service Accounts from the Google Cloud console menu

Create a Service Account

Click "+ Create service account" at the top of the Service Accounts page.

Create service account button on the Service Accounts page

Fill in the required information:

  • Service account name: Give it a descriptive name so you know what it's for.
  • Service account ID: Automatically populated based on the service account name.
  • Service account description: Optionally add a description for this service account.

Click "Create and continue" to create the service account.

Service account creation form

No configuration is needed for Permissions or Principals with access. Calendar sharing is managed from the Google Calendar side.

Generate a Key

From the service account list, click the email address of the service account you just created.

Select the "Keys" tab, then click "Add key" → "JSON" and click the "Create" button.

Create private key dialog with JSON selected

A JSON file will be downloaded to your computer. Upload this JSON file to Squadbase.

Enable the API

To allow the service account to access Google Calendar data, enable the "Google Calendar API" in your Google Cloud project.

From the left sidebar in Google Cloud, select "APIs & Services" → "Library", then search for "Google Calendar" in the search box. Find "Google Calendar API" in the results and click "Enable."


Grant Access to the Service Account

Choose one of the following methods to grant the service account access to Google Calendar.

Method 1: Invite the Service Account to Google Calendar

This method works for both personal Gmail and Google Workspace accounts. Share the target calendar directly with the service account.

In Google Calendar, click the three-dot menu (⋯) next to the calendar you want to connect in the left sidebar and select Settings and sharing. Under the Share with specific people or groups section, click + Add people and groups, enter the service account's email address, and set the permission to See all event details.

Google Calendar sharing settings showing the service account added with See all event details permission

Using "Make changes to events" or higher permissions risks unintended data modification. We recommend sharing with "See all event details" permissions.

For personal Gmail accounts: You can invite the service account directly — no additional settings are required.

For Google Workspace accounts: A Google Workspace administrator must change the external sharing settings for the calendar beforehand. In the Google Workspace Admin Console, go to AppsGoogle WorkspaceCalendarSharing settings, and set the external sharing option to All information will be shared (external users will not be allowed to change the calendar). Without this setting, sharing with the service account (which is treated as an external user) will not work.

Method 2: Domain-Wide Delegation (Google Workspace)

If you are using Google Workspace and want to grant access to all users' calendars across the domain, you can use domain-wide delegation.

Domain-wide delegation requires Google Workspace administrator privileges. It is not available for personal Gmail accounts.

Get the Service Account's Client ID

In Google Cloud Console, go to IAM & AdminService Accounts and click the service account you created. Copy the OAuth 2.0 Client ID (a numeric ID shown on the detail page).

Open Domain-Wide Delegation in Google Workspace Admin

Log in to Google Workspace Admin Console with an administrator account. Navigate to SecurityAccess and data controlAPI controls, then click Manage domain-wide delegation.

Add the Service Account

Click Add new, then enter the following:

  • Client ID: Paste the Client ID copied in Step 1
  • OAuth scopes: https://www.googleapis.com/auth/calendar.readonly

Click Authorize.