> ## Documentation Index
> Fetch the complete documentation index at: https://docs.rootly.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Installation

> Connect Google Calendar to Rootly via OAuth or service account JSON credentials to enable event-based workflow actions, meeting creation, and calendar reads.

## Installing Google Calendar on Rootly

<Note>
  We recommend you perform the installation with a **service account** to ensure the integration doesn't break, should the installing user leave the company.

  Ensure that you are **logged in as an Admin user** in Rootly.
</Note>

Locate **Google Calendar** on the [Integrations catalog](https://rootly.com/account/integrations "Integrations catalog") and click on Setup.

<Frame>
  <img alt="Document Image" src="https://mintcdn.com/rootly/7PwamMJIAOaYlZ7c/images/integrations/google-calendar/installation/images-1.webp?fit=max&auto=format&n=7PwamMJIAOaYlZ7c&q=85&s=2612570256a9199b6f8b883a9a88fb08" width="862" height="496" data-path="images/integrations/google-calendar/installation/images-1.webp" />
</Frame>

You'll be prompted to **choose a connection method** to your Google Meet:

* Connect through OAuth credentials
* Connect through JSON file credentials

<Frame>
  <img alt="Document Image" src="https://mintcdn.com/rootly/7PwamMJIAOaYlZ7c/images/integrations/google-calendar/installation/images-2.webp?fit=max&auto=format&n=7PwamMJIAOaYlZ7c&q=85&s=7c76ce28527ee815d469c9c25682dbde" width="862" height="476" data-path="images/integrations/google-calendar/installation/images-2.webp" />
</Frame>

### Integrating via OAuth

<Note>
  This integration method is used for **non-GCP service accounts**. This is the simplest and the recommended approach to integrating with Google Meet.

  1. You can first create a Google account with a generic email (e.g. `acme_rootly@company.com`).
  2. Then log into that Google account on your browser.
  3. Add `acme_rootly@company.com` as a member in your Rootly organization.
  4. Follow the instructions below to integrate as `acme_rootly@company.com`.
</Note>

Click on `Setup` to start the integration process. You'll be prompted to select a Google account.

<Frame>
  <img alt="Document Image" src="https://mintcdn.com/rootly/7PwamMJIAOaYlZ7c/images/integrations/google-calendar/installation/images-3.webp?fit=max&auto=format&n=7PwamMJIAOaYlZ7c&q=85&s=86c0fd02fdc00ae59a229b13a8dce5de" width="870" height="484" data-path="images/integrations/google-calendar/installation/images-3.webp" />
</Frame>

After selecting a Google account, you'll be prompted to **grant Rootly permission** to integrate with your Google account.

<Frame>
  <img alt="Document Image" src="https://mintcdn.com/rootly/7PwamMJIAOaYlZ7c/images/integrations/google-calendar/installation/images-4.webp?fit=max&auto=format&n=7PwamMJIAOaYlZ7c&q=85&s=92ee5e00dd8f437f4eb167f03e3275dc" width="871" height="504" data-path="images/integrations/google-calendar/installation/images-4.webp" />
</Frame>

Select `Allow` and you'll be redirected back to Rootly and the installation is considered complete!

<Frame>
  <img alt="Document Image" src="https://mintcdn.com/rootly/PTQsS2VTzmCsSwYt/images/integrations/google-calendar/installation/images-5.webp?fit=max&auto=format&n=PTQsS2VTzmCsSwYt&q=85&s=c51ab08058c96c82bc1d56a4b6caa454" width="865" height="498" data-path="images/integrations/google-calendar/installation/images-5.webp" />
</Frame>

### Integrating via GCP Service Account

<Note>
  This integration method is used for **GCP Service Accounts**. You can click [here](https://cloud.google.com/iam/docs/service-account-overview "here") to learn more about GCP Service Accounts.
</Note>

Navigate to your [Google Cloud](https://console.cloud.google.com/ "Google Cloud") Console, and click on `IAM & Admin`.

<Frame>
  <img alt="Document Image" src="https://mintcdn.com/rootly/PTQsS2VTzmCsSwYt/images/integrations/google-calendar/installation/images-6.webp?fit=max&auto=format&n=PTQsS2VTzmCsSwYt&q=85&s=4a5313323bf5086a5a839ac5652fc864" width="865" height="462" data-path="images/integrations/google-calendar/installation/images-6.webp" />
</Frame>

Next, navigate to `Service Accounts` and create a new service account by clicking on `Create Service Account`.

<Frame>
  <img alt="Document Image" src="https://mintcdn.com/rootly/PTQsS2VTzmCsSwYt/images/integrations/google-calendar/installation/images-7.webp?fit=max&auto=format&n=PTQsS2VTzmCsSwYt&q=85&s=2f490f368c69c0f543fe32008bb8381c" width="866" height="536" data-path="images/integrations/google-calendar/installation/images-7.webp" />
</Frame>

Fill in the Service account details, your `Service Account ID` will be automatically generated. Click on `Done` when you have completed the form.

<Frame>
  <img alt="Document Image" src="https://mintcdn.com/rootly/PTQsS2VTzmCsSwYt/images/integrations/google-calendar/installation/images-8.webp?fit=max&auto=format&n=PTQsS2VTzmCsSwYt&q=85&s=bf2ab8c65ef3285e790a8dc7593a3cde" width="865" height="616" data-path="images/integrations/google-calendar/installation/images-8.webp" />
</Frame>

Next, navigate to the `Keys` tab and click on `Add a Key`.

<Frame>
  <img alt="Document Image" src="https://mintcdn.com/rootly/PTQsS2VTzmCsSwYt/images/integrations/google-calendar/installation/images-9.webp?fit=max&auto=format&n=PTQsS2VTzmCsSwYt&q=85&s=fdfcadc7b782a198cb8d6f2e34310644" width="867" height="449" data-path="images/integrations/google-calendar/installation/images-9.webp" />
</Frame>

Create a key and download the JSON format.

<Frame>
  <img alt="Document Image" src="https://mintcdn.com/rootly/7PwamMJIAOaYlZ7c/images/integrations/google-calendar/installation/images-10.webp?fit=max&auto=format&n=7PwamMJIAOaYlZ7c&q=85&s=f99dc16f5543496b7309e42d38f22258" width="864" height="426" data-path="images/integrations/google-calendar/installation/images-10.webp" />
</Frame>

Next, navigate back to the Rootly integration page and upload the JSON file.

<Frame>
  <img alt="Document Image" src="https://mintcdn.com/rootly/7PwamMJIAOaYlZ7c/images/integrations/google-calendar/installation/images-11.webp?fit=max&auto=format&n=7PwamMJIAOaYlZ7c&q=85&s=d4d10b1667b7ff8d73da4fcff39e6b60" width="865" height="433" data-path="images/integrations/google-calendar/installation/images-11.webp" />
</Frame>

Now in [https://admin.google.com](https://admin.google.com/ "https://admin.google.com") > Security > [Api Controls](https://admin.google.com/ac/owl "Api Controls") > [Domain Wide Delegation](https://admin.google.com/ac/owl/domainwidedelegation "Domain Wide Delegation")

Select your service account and add the scope below:

* [https://www.googleapis.com/auth/calendar.readonly](https://www.googleapis.com/auth/calendar.readonly "https://www.googleapis.com/auth/calendar.readonly")
* [https://www.googleapis.com/auth/calendar.events](https://www.googleapis.com/auth/calendar.events "https://www.googleapis.com/auth/calendar.events")

<Frame>
  <img alt="Document Image" src="https://mintcdn.com/rootly/7PwamMJIAOaYlZ7c/images/integrations/google-calendar/installation/images-12.webp?fit=max&auto=format&n=7PwamMJIAOaYlZ7c&q=85&s=e9d269c36b06e313d674c82cd0824a33" width="875" height="792" data-path="images/integrations/google-calendar/installation/images-12.webp" />
</Frame>

Now in [https://admin.google.com](https://admin.google.com/ "https://admin.google.com") > Google Workspace > [Core Google Workspace.](https://admin.google.com/ac/appslist/core "Core Google Workspace.")

Select Google Calendar.

* Configure External sharing options for primary calendar like below:
  <Frame>
    <img alt="Document Image" src="https://mintcdn.com/rootly/7PwamMJIAOaYlZ7c/images/integrations/google-calendar/installation/images-13.webp?fit=max&auto=format&n=7PwamMJIAOaYlZ7c&q=85&s=897cde141972a795fce2793209651989" width="867" height="329" data-path="images/integrations/google-calendar/installation/images-13.webp" />
  </Frame>
* Configure Internal sharing options for primary calendar like below:
  <Frame>
    <img alt="Document Image" src="https://mintcdn.com/rootly/7PwamMJIAOaYlZ7c/images/integrations/google-calendar/installation/images-14.webp?fit=max&auto=format&n=7PwamMJIAOaYlZ7c&q=85&s=87436a496aa6bc318207acf17f55ad15" width="866" height="373" data-path="images/integrations/google-calendar/installation/images-14.webp" />
  </Frame>

Now go in your own calendar > Settings and share your calendar with the service account email with **make changes to events** permission.

<Frame>
  <img alt="Document Image" src="https://mintcdn.com/rootly/7PwamMJIAOaYlZ7c/images/integrations/google-calendar/installation/images-15.webp?fit=max&auto=format&n=7PwamMJIAOaYlZ7c&q=85&s=47503b255336482131a65a4999952b0b" width="870" height="383" data-path="images/integrations/google-calendar/installation/images-15.webp" />
</Frame>

Make sure to enter the email of the user you want to schedule meetings as in the Rootly integration:

<Frame>
  <img alt="Document Image" src="https://mintcdn.com/rootly/7PwamMJIAOaYlZ7c/images/integrations/google-calendar/installation/images-16.webp?fit=max&auto=format&n=7PwamMJIAOaYlZ7c&q=85&s=e58b9fb760bb895e84eea608510a72bd" width="867" height="436" data-path="images/integrations/google-calendar/installation/images-16.webp" />
</Frame>

Click `Save` and you should be all set!

## Uninstall

You can **uninstall** this integration in the integrations panel by clicking **Configure > Delete.**

***

## Importing a Google Calendar as a PTO Feed

The OAuth integration above is for event-based workflow actions. If your goal is instead to **overlay** holidays on your Rootly on-call schedules — for example, a shared team calendar tracking company holidays — no OAuth is required. Rootly accepts a Google Calendar's iCal URL as a holiday calendar feed.

<Warning>
  Use the calendar's **Secret address in iCal format** for any calendar containing HR or PTO data. The secret address works without making the calendar publicly readable on the internet. Reserve the **Public address** for calendars that are already meant to be shareable, such as a company-wide holidays calendar.
</Warning>

<Steps>
  <Step title="Open The Calendar's Settings">
    In Google Calendar, hover over the calendar in the left sidebar, click the overflow menu, and choose **Settings and sharing**.
  </Step>

  <Step title="Copy The iCal URL">
    Scroll to the **Integrate calendar** section and copy the URL that fits your use case:

    * For private or sensitive calendars, copy the URL under **Secret address in iCal format**. Treat this URL as a credential — anyone with it can subscribe to the calendar.
    * For calendars already intended to be public (like company holidays), copy the URL under **Public address in iCal format**. This option requires the calendar to be set as public under **Access permissions**.

    <Warning>
      Do not use the **Embed code** or the **Public URL to this calendar**. Those are for embedding the calendar on a webpage and will not work as a feed. Only the iCal URLs end in `.ics`.
    </Warning>
  </Step>

  <Step title="Add The Feed To Rootly">
    In the Rootly dashboard, go to **On-Call → Schedules**, open the **Holiday calendars** dropdown, and select **Add a holiday calendar**. Paste the iCal URL, give the calendar a descriptive name, and save.
  </Step>
</Steps>

<Tip>
  For the full behavior of holiday calendars in Rootly — conflict highlighting, recurring events, multi-region setups — see [Adding a Holiday Calendar](/on-call/holiday-calendar).
</Tip>
