# Google Calendar Extension

Sync Out of Office events from Google Calendar into PagerDuty to flag scheduling conflicts before they affect on-call coverage.

The Google Calendar extension syncs calendar events with PagerDuty. The extension integrates with Shift Agent to detect scheduling conflicts before they impact coverage, and it operates independently to support standalone scheduling needs. This integration reduces manual availability updates and maintains operational continuity while respecting scheduled commitments.

> **Availability:** The Google Calendar extension is available on all pricing plans.

> **Permission Scope Details:** - The Google Calendar integration connects at an account level. PagerDuty reads **Out of Office** events only for Google Calendar accounts with a corresponding PagerDuty user. PagerDuty identifies users by matching email addresses.
> - The scope `https://www.googleapis.com/auth/calendar.events.freebusy` does not enable PagerDuty to view all calendar events or user data.
> - PagerDuty does not store data unrelated to **Out of Office** events. PagerDuty stores and displays **Out of Office** dates and times for specific users on the PagerDuty schedule page to determine conflicts.
> - PagerDuty cannot read event titles, view users on events, or write to calendars.

## Set Up the Google Calendar Extension

1. In Google Workspace, follow the instructions to [Create a service account](https://developers.google.com/identity/protocols/oauth2/service-account#creatinganaccount) to share credentials with PagerDuty. In **Advanced settings**, configure the following fields:

   | Field                                         | Value  |
   | :-------------------------------------------- | :----- |
   | **Domain-wide Delegation**                    | Enable |
   | **Google Workspace Marketplace OAuth Client** | Enable |

2. Navigate to **Main Menu**   →  **APIs & Services**  →  **OAuth consent screen**.

3. Select **Data Access** and click **Click or remove scopes**.

4. Click the **Filter** search field and select **Scope**.

5. Search for and select `https://www.googleapis.com/auth/calendar.events.freebusy`.

6. Select the **Google Calendar API** checkbox and click **Update**.

![A screenshot of the Google Workspace cloud admin console showing how to enable the scope https://www.googleapis.com/auth/calendar.events.freebusy web app](/images/kb/8e846ab02d990ed2d5695628992a18d1a3db29ccda4bbeca01a8a2ad5b6fdc66-Google_Cal_API_Checkbox.png)
*Enable Google Calendar API Scope*

7. In the PagerDuty web app, navigate to **Integrations**  →  **Extensions**.
8. Click **New Extension** and select **Google Calendar**.
9. On the Google Calendar extension page, upload your **Google Workspace token file**. View Google's [Creating a service account](https://developers.google.com/identity/protocols/oauth2/service-account#creatinganaccount) documentation for more information about your Google Workspace access token.
10. Navigate to the **Google Workspace Admin Console** and add a new client with an ID matching the service account client ID.
    - **Note**: You can add only one file for each Google Workspace.

![Google Calendar extension page with a file upload field for the Google Workspace token file](/images/kb/d492b04e239924f8f218415a873133e22d73ddd42b4509a40dc58d71b2cff00b-Google_Caledar_Extension_Workspace.png)
*Upload Google Workspace Access Token*

> **Calendar Event Limit:** A limit of 1,000 total future calendar events exists per calendar.

> **Google Calendar Update Schedule:** Shift Agent ingests Google Calendar data once per hour and does not immediately detect recent conflicts. Manually share out-of-office information with Shift Agent (for example, `I am going to be on vacation June 13`) to immediately include recent availability updates.

> **Use Focus Time to Block Meetings:** The **Focus Time** event type blocks your calendar for lunch or other times to prevent meetings. This event type auto-declines events without triggering PagerDuty conflict detection.

### Configure Account-Level Notification Settings

Navigate to **Integrations**  →  **Extensions**  →  **Google Calendar** to adjust notification settings.

When enabled, you can suppress Slack conflict alerts that occur during your Google Calendar Out of Office (OOO) event. Alerts outside the OOO window deliver normally. This configuration reduces noise from last‑minute OOO blocks added to schedules.

![Toggle to suppress Slack conflict alerts during a Google Calendar Out of Office event](/images/kb/9feb6dad48fafcea21b32dfa123a0f1a6beae8f7b463da2916e45d3a2ef36a88-Google_Calendar_Extension_1.png)
*Google Calendar Notification Settings*
