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

# Google Calendar

> Integrate your application with the Google Calendar API

## 🚀 Quickstart

Connect to Google Calendar with Nango and see data flow in 2 minutes.

**1. Create an integration**

In Nango ([free signup](https://app.nango.dev)), go to [Integrations](https://app.nango.dev/dev/integrations) -> *Configure New Integration* -> *Google Calendar*.

> [!NOTE]
>
> Nango has a [Nango-managed OAuth app](https://nango.dev/docs/guides/auth/auth-guide.md#nango-managed-oauth-apps) you can use in development and production. Select it when you create the integration.

**2. Authorize Google Calendar**

Go to [Connections](https://app.nango.dev/dev/connections) -> *Add Test Connection* -> *Authorize*, then log in to Google Calendar. Later, you'll let your users do the same directly from your app.

**3. Call the Google Calendar API**

Let's make your first request to the Google Calendar API (fetch a list of calendars). Replace the placeholders below with your [Environment API key](https://nango.dev/docs/reference/backend/http-api/api-keys.md), [integration ID](https://app.nango.dev/dev/integrations), and [connection ID](https://app.nango.dev/dev/connections):

> [tab] cURL
>
> ```bash theme={null}
> curl "https://api.nango.dev/proxy/calendar/v3/users/me/calendarList?maxResults=10" \
>   -H "Authorization: Bearer <NANGO-API-KEY>" \
>   -H "Provider-Config-Key: <INTEGRATION-ID>" \
>   -H "Connection-Id: <CONNECTION-ID>"
> ```

> [tab] Node
>
> Install Nango's backend SDK with `npm i @nangohq/node`. Then run:
>
> ```typescript theme={null}
> import { Nango } from '@nangohq/node';
>
> const nango = new Nango({ apiKey: '<NANGO-API-KEY>' });
>
> const res = await nango.get({
>     endpoint: '/calendar/v3/users/me/calendarList',
>     params: { maxResults: 10 },
>     providerConfigKey: '<INTEGRATION-ID>',
>     connectionId: '<CONNECTION-ID>'
> });
>
> console.log(res.data);
> ```

Or fetch credentials dynamically via the [Node SDK](https://nango.dev/docs/reference/backend/backend-sdk/node.md#get-a-connection-with-credentials) or [API](https://nango.dev/docs/reference/backend/http-api/connections/get.md).

✅ You're connected! Check the [Logs](https://app.nango.dev/dev/logs) tab in Nango to inspect requests.

**4. Implement Nango in your app**

Follow our [Auth implementation guide](https://nango.dev/docs/guides/primitives/auth.md) to integrate Nango in your app.

To use your own OAuth app instead of the Nango-managed one, follow the setup guide linked below.

## 📚 Google Calendar Integration Guides

Nango maintained guides for common use cases.

* [How to register your own Google Calendar OAuth app](https://nango.dev/docs/api-integrations/google-calendar/how-to-register-your-own-google-calendar-api-oauth-app)\
  Register an OAuth app with Google Calendar and obtain credentials to connect it to Nango

* [How to setup webhooks with Google Calendar on Nango](https://nango.dev/docs/api-integrations/google-calendar/webhooks)
  Set up Google Calendar push notifications using notification channels to receive real-time calendar and event updates

* [Google App & Security Review](https://nango.dev/docs/api-integrations/google-shared/google-security-review)
  Pass Google's OAuth app verification to go to production with your own OAuth app (not needed with the Nango-managed app)

Official docs: [Google Calendar API documentation](https://developers.google.com/workspace/calendar/api/v3/reference)

## 🧩 Pre-built syncs & tools for Google Calendar

Explore Nango-provided tools in your dashboard. Extend and customize them to fit your needs.

### Others

| Function name | Description | Type |
| - | - | - |
| `add-attendee` | Fetch an event, append an attendee, and patch the attendee list | [Tool](https://nango.dev/docs/guides/functions/tools.md) |
| `clear-calendar` | Clear the primary calendar by deleting all events. | [Tool](https://nango.dev/docs/guides/functions/tools.md) |
| `create-acl-rule` | Create an access control rule | [Tool](https://nango.dev/docs/guides/functions/tools.md) |
| `create-all-day-event` | Create an all-day calendar event using start and end dates | [Tool](https://nango.dev/docs/guides/functions/tools.md) |
| `create-calendar` | Create a new secondary Google Calendar with the specified title. | [Tool](https://nango.dev/docs/guides/functions/tools.md) |
| `create-event` | Create a calendar event | [Tool](https://nango.dev/docs/guides/functions/tools.md) |
| `create-recurring-event` | Create a recurring event with supplied start, end, and RRULE values | [Tool](https://nango.dev/docs/guides/functions/tools.md) |
| `delete-acl-rule` | Delete an access control rule | [Tool](https://nango.dev/docs/guides/functions/tools.md) |
| `delete-calendar` | Delete a calendar | [Tool](https://nango.dev/docs/guides/functions/tools.md) |
| `delete-event` | Delete a calendar event | [Tool](https://nango.dev/docs/guides/functions/tools.md) |
| `find-free-slots` | Query free/busy data and return gaps meeting a minimum duration. | [Tool](https://nango.dev/docs/guides/functions/tools.md) |
| `get-acl-rule` | Get an access control rule by ID | [Tool](https://nango.dev/docs/guides/functions/tools.md) |
| `get-calendar-list-entry` | Retrieve a calendar list entry with access role and colors | [Tool](https://nango.dev/docs/guides/functions/tools.md) |
| `get-calendar` | Get a calendar by ID | [Tool](https://nango.dev/docs/guides/functions/tools.md) |
| `get-colors` | Return available calendar and event color definitions | [Tool](https://nango.dev/docs/guides/functions/tools.md) |
| `get-event` | Get an event by ID | [Tool](https://nango.dev/docs/guides/functions/tools.md) |
| `get-setting` | Retrieve a single Google Calendar user setting by ID | [Tool](https://nango.dev/docs/guides/functions/tools.md) |
| `import-event` | Import an event as a private copy using an iCalendar UID. | [Tool](https://nango.dev/docs/guides/functions/tools.md) |
| `insert-calendar-to-list` | Add an existing calendar to the user's list with optional colors | [Tool](https://nango.dev/docs/guides/functions/tools.md) |
| `list-acl-rules` | List ACL rules for a calendar with pagination support | [Tool](https://nango.dev/docs/guides/functions/tools.md) |
| `list-calendar-list` | List calendars in the user's calendar list | [Tool](https://nango.dev/docs/guides/functions/tools.md) |
| `list-event-instances` | List instances of a recurring event | [Tool](https://nango.dev/docs/guides/functions/tools.md) |
| `list-events` | List events on a calendar | [Tool](https://nango.dev/docs/guides/functions/tools.md) |
| `list-settings` | List calendar settings | [Tool](https://nango.dev/docs/guides/functions/tools.md) |
| `list-upcoming-events` | List upcoming events from now, ordered by start time | [Tool](https://nango.dev/docs/guides/functions/tools.md) |
| `move-event` | Move an event to another calendar, changing its organizer. | [Tool](https://nango.dev/docs/guides/functions/tools.md) |
| `patch-event` | Partially update only provided event fields like time, location, or description | [Tool](https://nango.dev/docs/guides/functions/tools.md) |
| `query-free-busy` | Return free/busy blocks for one or more calendars in a time range | [Tool](https://nango.dev/docs/guides/functions/tools.md) |
| `quick-add-event` | Create an event from a text string | [Tool](https://nango.dev/docs/guides/functions/tools.md) |
| `remove-attendee` | Remove an attendee from a Google Calendar event by email | [Tool](https://nango.dev/docs/guides/functions/tools.md) |
| `remove-calendar-from-list` | Remove a calendar from the user's calendar list | [Tool](https://nango.dev/docs/guides/functions/tools.md) |
| `search-events` | Search a calendar's events by text query and optional time bounds | [Tool](https://nango.dev/docs/guides/functions/tools.md) |
| `settings` | Fetch all user settings across pages from Google Calendar | [Tool](https://nango.dev/docs/guides/functions/tools.md) |
| `stop-channel` | Stop push notifications for a channel | [Tool](https://nango.dev/docs/guides/functions/tools.md) |
| `update-acl-rule` | Update an access control rule | [Tool](https://nango.dev/docs/guides/functions/tools.md) |
| `update-attendee-response` | Fetch an event and update one attendee's response status | [Tool](https://nango.dev/docs/guides/functions/tools.md) |
| `update-calendar-list-entry` | Update a calendar list entry's settings | [Tool](https://nango.dev/docs/guides/functions/tools.md) |
| `update-calendar` | Update a calendar's metadata | [Tool](https://nango.dev/docs/guides/functions/tools.md) |
| `update-event` | Update a calendar event | [Tool](https://nango.dev/docs/guides/functions/tools.md) |
| `watch-calendar-list` | Subscribe to changes in the calendar list | [Tool](https://nango.dev/docs/guides/functions/tools.md) |
| `watch-events` | Subscribe to event changes on a calendar | [Tool](https://nango.dev/docs/guides/functions/tools.md) |
| `watch-settings` | Subscribe to changes in calendar settings | [Tool](https://nango.dev/docs/guides/functions/tools.md) |
| `whoami` | Return the current user's Google account ID and email | [Tool](https://nango.dev/docs/guides/functions/tools.md) |
| `calendar-events` | Incrementally sync full Google Calendar event objects | [Sync](https://nango.dev/docs/guides/functions/syncs/sync-functions.md) |
| `calendar-list` | Full sync of the user's calendar list, including access role, colors, primary/selected flags, and deleted status. | [Sync](https://nango.dev/docs/guides/functions/syncs/sync-functions.md) |
| `settings` | Sync calendar settings | [Sync](https://nango.dev/docs/guides/functions/syncs/sync-functions.md) |

***


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.