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

# Google Calendar

> Read and write events, manage calendars, sharing (ACL), user settings, colors, and free/busy availability via the Google Calendar API v3. 32 tools accessible through the MCP runtime endpoint.

<img src="https://www.gstatic.com/images/branding/product/2x/calendar_2020q4_48dp.png" alt="Google Calendar" style={{ width: "48px", height: "48px", marginBottom: "16px" }} />

## Overview

| Property   | Value                                    |
| ---------- | ---------------------------------------- |
| Slug       | `google-calendar`                        |
| Category   | Calendar                                 |
| Auth       | OAuth 2.0 + PKCE                         |
| Base URL   | `https://www.googleapis.com/calendar/v3` |
| Tool count | 32                                       |
| Rate limit | 5 req/sec, 250 req/min                   |

## Supported tools

All 32 slugs surfaced through MCP:

| Area          | Slugs                                                                                                                                                                                                                                                                                                                              |
| ------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Events        | `GOOGLE_CALENDAR_LIST_EVENTS`, `GOOGLE_CALENDAR_GET_EVENT`, `GOOGLE_CALENDAR_CREATE_EVENT`, `GOOGLE_CALENDAR_QUICK_ADD_EVENT`, `GOOGLE_CALENDAR_IMPORT_EVENT`, `GOOGLE_CALENDAR_PATCH_EVENT`, `GOOGLE_CALENDAR_UPDATE_EVENT`, `GOOGLE_CALENDAR_MOVE_EVENT`, `GOOGLE_CALENDAR_LIST_EVENT_INSTANCES`, `GOOGLE_CALENDAR_DELETE_EVENT` |
| Calendars     | `GOOGLE_CALENDAR_GET_CALENDAR`, `GOOGLE_CALENDAR_CREATE_CALENDAR`, `GOOGLE_CALENDAR_PATCH_CALENDAR`, `GOOGLE_CALENDAR_UPDATE_CALENDAR`, `GOOGLE_CALENDAR_CLEAR_CALENDAR`, `GOOGLE_CALENDAR_DELETE_CALENDAR`                                                                                                                        |
| Calendar list | `GOOGLE_CALENDAR_LIST_CALENDARS`, `GOOGLE_CALENDAR_GET_CALENDAR_LIST_ENTRY`, `GOOGLE_CALENDAR_ADD_CALENDAR_TO_LIST`, `GOOGLE_CALENDAR_PATCH_CALENDAR_LIST_ENTRY`, `GOOGLE_CALENDAR_UPDATE_CALENDAR_LIST_ENTRY`, `GOOGLE_CALENDAR_REMOVE_CALENDAR_FROM_LIST`                                                                        |
| Sharing (ACL) | `GOOGLE_CALENDAR_LIST_ACL_RULES`, `GOOGLE_CALENDAR_GET_ACL_RULE`, `GOOGLE_CALENDAR_CREATE_ACL_RULE`, `GOOGLE_CALENDAR_PATCH_ACL_RULE`, `GOOGLE_CALENDAR_UPDATE_ACL_RULE`, `GOOGLE_CALENDAR_DELETE_ACL_RULE`                                                                                                                        |
| Settings      | `GOOGLE_CALENDAR_LIST_SETTINGS`, `GOOGLE_CALENDAR_GET_SETTING`                                                                                                                                                                                                                                                                     |
| Colors        | `GOOGLE_CALENDAR_GET_COLORS`                                                                                                                                                                                                                                                                                                       |
| Free/busy     | `GOOGLE_CALENDAR_QUERY_FREEBUSY`                                                                                                                                                                                                                                                                                                   |

## Connect setup

Google Calendar uses Google's OAuth 2.0 with PKCE. You need a Google Cloud project with the **Google Calendar API** enabled and OAuth credentials configured for a Web application. If you already use the Gmail integration, you can reuse the same Google Cloud OAuth client — just enable the Calendar API and add the calendar scope.

<Steps>
  <Step title="Create a Google Cloud OAuth client">
    Go to [Google Cloud Console → APIs & Services → Credentials](https://console.cloud.google.com/apis/credentials), choose **Create credentials → OAuth client ID → Web application**, then copy the **Client ID** and **Client Secret**.
  </Step>

  <Step title="Add the redirect URI">
    Under **Authorized redirect URIs**, add:

    ```
    https://api.routemcp.io/api/v1/connect/oauth/callback
    ```
  </Step>

  <Step title="Enable the Google Calendar API">
    In **APIs & Services → Library**, search for **Google Calendar API** and click **Enable** on the same Google Cloud project.
  </Step>

  <Step title="Configure required scopes">
    Add these scopes on the OAuth consent screen:

    * `https://www.googleapis.com/auth/calendar` — read / write calendars, events, sharing (ACL), settings, and free/busy
    * `openid`
    * `email`
    * `profile`
  </Step>

  <Step title="Connect via the widget">
    The end user opens the Connect widget, picks Google Calendar, and is sent through Google's consent screen.
  </Step>
</Steps>

## Usage

### Through the chat endpoint (recommended)

```bash theme={null}
# Book a meeting (the agent free/busy-checks first, then creates)
curl -N -X POST "https://api.routemcp.io/api/v1/mcp/<workspace_id>/chat" \
  -H "x-api-key: sk_live_your_key" \
  -H "x-session-id: user-42" \
  -H "content-type: application/json" \
  -d '{"message": "Book a 30-minute sync tomorrow at 2pm with alice@example.com."}'

# Read the calendar
curl -N -X POST "https://api.routemcp.io/api/v1/mcp/<workspace_id>/chat" \
  -H "x-api-key: sk_live_your_key" \
  -H "x-session-id: user-42" \
  -H "content-type: application/json" \
  -d '{"message": "What is on my calendar this week?"}'
```

The agent loop picks `GOOGLE_CALENDAR_QUERY_FREEBUSY` / `GOOGLE_CALENDAR_CREATE_EVENT` / `GOOGLE_CALENDAR_LIST_EVENTS` and streams results back as SSE.

### Direct MCP JSON-RPC (Claude Desktop / Cursor / custom MCP clients)

```json theme={null}
{
  "mcpServers": {
    "routemcp": {
      "url": "https://api.routemcp.io/api/v1/mcp/<workspace_id>",
      "headers": {
        "x-api-key": "<YOUR_API_KEY>",
        "x-session-id": "<SESSION_ID>"
      }
    }
  }
}
```

Once connected, MCP clients can invoke any of the 32 tools by slug via the standard `tools/call` JSON-RPC method.
