> For clean Markdown of any page, append .md to the page URL.
> For a complete documentation index, see https://docs.airweave.ai/llms.txt.
> For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://docs.airweave.ai/_mcp/server.

# Google Calendar

> Google Calendar integration with Airweave

{/* AUTO-GENERATED CONTENT START */}

<img src="https://fdr-prod-docs-files-public.s3.us-east-1.amazonaws.com/airweave.docs.buildwithfern.com/2026-05-20T11%3A36%3A51.367Z/docs/pages/connectors/google_calendar/icon.svg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Content-Sha256=UNSIGNED-PAYLOAD&X-Amz-Credential=AKIA6KXJSKKNFOCF7G4B%2F20260807%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20260807T163221Z&X-Amz-Expires=604800&X-Amz-Signature=6c1c0ffe32cf7a2a31e7ea4f4ccb0a8215a51e3da3009444dfa0040bcda7e8bc&X-Amz-SignedHeaders=host&x-amz-checksum-mode=ENABLED&x-id=GetObject" alt="Google Calendar logo" width="48" height="48" />

<h1>
  Google Calendar
</h1>

This connector enables AI agents and RAG systems to retrieve context from Google Calendar through Airweave's unified search layer.

## Configuration

Google Calendar source connector integrates with the Google Calendar API to extract data.

Synchronizes calendars, events, and free/busy information.

It provides comprehensive access to your
Google Calendar scheduling information for productivity and time management insights.

#### [View Source Code](https://github.com/airweave-ai/airweave/tree/main/backend/airweave/platform/sources/google_calendar.py)

Explore the Google Calendar connector implementation

### Authentication

This connector uses **OAuth 2.0 with custom credentials**. You need to provide your OAuth application's Client ID and Client Secret, then complete the OAuth consent flow.

#### OAuth Setup Required

1. Create an OAuth application in your provider's developer console
2. Enter your Client ID and Client Secret when configuring the connection
3. Complete the OAuth consent flow

### Configuration Options

This connector does not have any additional configuration options.

## Data Models

The following data models are available for this connector:

#### GoogleCalendarCalendarEntity

Schema for a Google Calendar object (the underlying calendar resource).

See: [https://developers.google.com/calendar/api/v3/reference/calendars](https://developers.google.com/calendar/api/v3/reference/calendars)

| Field           | Type           | Description                                              |
| --------------- | -------------- | -------------------------------------------------------- |
| calendar\_key   | str            | Stable calendar identifier (matches Google calendar ID). |
| display\_name   | str            | Display name for the calendar.                           |
| summary         | Optional\[str] | Title of the calendar.                                   |
| description     | Optional\[str] | Description of the calendar.                             |
| location        | Optional\[str] | Geographic location of the calendar.                     |
| time\_zone      | Optional\[str] | The time zone of the calendar.                           |
| web\_url\_value | Optional\[str] | Direct link to the calendar in Google Calendar.          |

#### GoogleCalendarListEntity

Schema for a CalendarList entry, i.e., how the user sees a calendar.

See: [https://developers.google.com/calendar/api/v3/reference/calendarList](https://developers.google.com/calendar/api/v3/reference/calendarList)

| Field             | Type           | Description                                                                                                   |
| ----------------- | -------------- | ------------------------------------------------------------------------------------------------------------- |
| calendar\_key     | str            | Calendar ID for this list entry.                                                                              |
| display\_name     | str            | Display name used by the user.                                                                                |
| summary           | Optional\[str] | Title of the calendar.                                                                                        |
| summary\_override | Optional\[str] | User-defined name for the calendar, if set.                                                                   |
| color\_id         | Optional\[str] | Color ID reference for the calendar.                                                                          |
| background\_color | Optional\[str] | Background color in HEX.                                                                                      |
| foreground\_color | Optional\[str] | Foreground color in HEX.                                                                                      |
| hidden            | bool           | Whether the calendar is hidden from the UI.                                                                   |
| selected          | bool           | Indicates if the calendar is selected in the UI.                                                              |
| access\_role      | Optional\[str] | The effective access role that the authenticated user has on the calendar. E.g., 'owner', 'reader', 'writer'. |
| primary           | bool           | Flag to indicate if this is the primary calendar.                                                             |
| deleted           | bool           | Flag to indicate if this calendar has been deleted.                                                           |
| web\_url\_value   | Optional\[str] | Direct link to the calendar in Google Calendar.                                                               |

#### GoogleCalendarEventEntity

Schema for a Google Calendar Event.

See: [https://developers.google.com/calendar/api/v3/reference/events](https://developers.google.com/calendar/api/v3/reference/events)

| Field                | Type                              | Description                                                                                            |
| -------------------- | --------------------------------- | ------------------------------------------------------------------------------------------------------ |
| event\_key           | str                               | Stable event identifier.                                                                               |
| calendar\_key        | str                               | Calendar ID for this event.                                                                            |
| title                | str                               | Display title of the event.                                                                            |
| created\_time        | datetime                          | Creation timestamp for the event.                                                                      |
| updated\_time        | datetime                          | Last modification timestamp for the event.                                                             |
| status               | Optional\[str]                    | Status of the event (e.g., 'confirmed').                                                               |
| html\_link           | Optional\[str]                    | An absolute link to the event in the Google Calendar UI.                                               |
| summary              | Optional\[str]                    | Title of the event.                                                                                    |
| description          | Optional\[str]                    | Description of the event.                                                                              |
| location             | Optional\[str]                    | Geographic location of the event.                                                                      |
| color\_id            | Optional\[str]                    | Color ID for this event.                                                                               |
| start\_datetime      | Optional\[datetime]               | Start datetime if the event has a specific datetime. (DateTime from 'start' if 'dateTime' is present.) |
| start\_date          | Optional\[str]                    | Start date if the event is an all-day event. (Date from 'start' if 'date' is present.)                 |
| end\_datetime        | Optional\[datetime]               | End datetime if the event has a specific datetime. (DateTime from 'end' if 'dateTime' is present.)     |
| end\_date            | Optional\[str]                    | End date if the event is an all-day event. (Date from 'end' if 'date' is present.)                     |
| recurrence           | Optional\[List\[str]]             | List of RRULE, EXRULE, RDATE, EXDATE lines for recurring events.                                       |
| recurring\_event\_id | Optional\[str]                    | For recurring events, identifies the event ID of the recurring series.                                 |
| organizer            | Optional\[Dict\[str, Any]]        | The organizer of the event. Usually contains 'email' and 'displayName'.                                |
| creator              | Optional\[Dict\[str, Any]]        | The creator of the event. Usually contains 'email' and 'displayName'.                                  |
| attendees            | Optional\[List\[Dict\[str, Any]]] | The attendees of the event (each dict typically has 'email', 'responseStatus', etc.).                  |
| transparency         | Optional\[str]                    | Specifies whether the event blocks time on the calendar ('opaque') or not ('transparent').             |
| visibility           | Optional\[str]                    | Visibility of the event (e.g., 'default', 'public').                                                   |
| conference\_data     | Optional\[Dict\[str, Any]]        | Conference data associated with the event, e.g., hangout or meet link.                                 |
| event\_type          | Optional\[str]                    | Event type. E.g., 'default' or 'focus'.                                                                |
| web\_url\_value      | Optional\[str]                    | Direct link to the event in Google Calendar.                                                           |

#### GoogleCalendarFreeBusyEntity

Schema for a FreeBusy response entity for a given calendar.

See: [https://developers.google.com/calendar/api/v3/reference/freebusy](https://developers.google.com/calendar/api/v3/reference/freebusy)

| Field           | Type                   | Description                                             |
| --------------- | ---------------------- | ------------------------------------------------------- |
| freebusy\_key   | str                    | Stable identifier for the free/busy snapshot.           |
| label           | str                    | Display label for the free/busy entry.                  |
| calendar\_id    | str                    | ID of the calendar for which free/busy is returned.     |
| busy            | List\[Dict\[str, str]] | List of time ranges during which this calendar is busy. |
| web\_url\_value | Optional\[str]         | Link back to the calendar UI.                           |

{/* AUTO-GENERATED CONTENT END */}

## Integrate Airweave with Google APIs on localhost

This guide will walk you through connecting Google Workspace APIs to Airweave when running locally.
Google provides extensive [documentation](https://developers.google.com/workspace/guides/get-started) on setting up your workspace.
Below is a streamlined process for connecting Google APIs to Airweave.

1. [Create a Google Cloud project](https://developers.google.com/workspace/guides/create-project) for your Google Workspace (if you don't already have one)
2. [Enable the Google Workspace APIs](https://developers.google.com/workspace/guides/enable-apis) for Gmail, Google Calendar, and Google Drive
3. [Configure Google OAuth 2.0 consent screen](https://developers.google.com/workspace/guides/configure-oauth-consent)
4. Under `Audience`, select `Make external` and add test users
5. Under `Data Access`, add the following scopes:

```
https://www.googleapis.com/auth/docs
https://www.googleapis.com/auth/drive.photos.readonly
https://www.googleapis.com/auth/drive
https://www.googleapis.com/auth/drive.readonly
https://www.googleapis.com/auth/drive.metadata
https://www.googleapis.com/auth/drive.metadata.readonly
https://www.googleapis.com/auth/gmail.readonly
https://www.googleapis.com/auth/calendar.events.public.readonly
https://www.googleapis.com/auth/calendar.freebusy
https://www.googleapis.com/auth/calendar.readonly
https://www.googleapis.com/auth/calendar.calendars.readonly
https://www.googleapis.com/auth/calendar.events.owned.readonly
https://www.googleapis.com/auth/calendar.events.readonly
```

6. [Create OAuth client ID credentials](https://developers.google.com/workspace/guides/create-credentials#oauth-client-id)
7. Under "Authorized redirect URIs," click "+ Add URI" add the Redirect URI. Use the appropriate URL for your environment:

   **Production (Airweave Cloud):**

   ```
   https://api.airweave.ai/source-connections/callback
   ```

   **Local:**

   ```
   http://localhost:8001/source-connections/callback
   ```
8. Locate the client ID and client secret from your newly created OAuth client. Add these credentials to the `dev.integrations.yml` file to enable Google API integration.