Home / MCP / Google Calendar MCP Server

Google Calendar MCP Server

Provides Google Calendar integration for AI assistants, enabling multi-account calendars, event management, free/busy checks, and smart scheduling.

typescript
Installation
Add the following to your MCP client configuration file.

Configuration

View docs
{
    "mcpServers": {
        "google_calendar": {
            "command": "npx",
            "args": [
                "@cocal/google-calendar-mcp"
            ],
            "env": {
                "GOOGLE_OAUTH_CREDENTIALS": "/path/to/your/gcp-oauth.keys.json",
                "GOOGLE_CALENDAR_MCP_TOKEN_PATH": "/path/to/tokens"
            }
        }
    }
}

You can extend your AI assistant with Google Calendar capabilities through a dedicated MCP server. This integration lets you manage multiple Google accounts and calendars, check availability, create and modify events, handle recurring schedules, and even import events from images or links. It’s designed to streamline scheduling within multi-account workflows and coordinate across calendars efficiently.

How to use

To use this MCP server, you connect it to your AI assistant client as an MCP endpoint. The main setup involves registering the MCP with your client so you can send calendar-related requests like listing calendars, creating events, checking free time, and responding to invitations. You can operate across multiple Google accounts and calendars, and you can perform actions such as creating, updating, deleting, or searching events in a unified way.

Common usage patterns include: coordinating availability across personal and work calendars, creating events from natural language prompts, managing recurring meetings, and importing events from images or web data. When you use the assistant, you’ll see tools that allow listing calendars, listing events, creating or updating events, and querying free/busy information across all connected accounts.

How to install

Prerequisites you need before installing: a Node.js environment (LTS recommended) and access to a Google Cloud project with the Calendar API enabled. You also need OAuth 2.0 Desktop credentials for authentication.

Option 1: Use with npx (Recommended) and configure in your Claude Desktop client. Add this configuration to your Claude Desktop JSON configuration file where your MCP servers are defined. The example uses a single Google Calendar MCP server named google-calendar.

{
  "mcpServers": {
    "google-calendar": {
      "command": "npx",
      "args": ["@cocal/google-calendar-mcp"],
      "env": {
        "GOOGLE_OAUTH_CREDENTIALS": "/path/to/your/gcp-oauth.keys.json"
      }
    }
  }
}

Option 2: Local installation. Clone the project, install dependencies, and build before configuring your client. Then point your MCP client to the local build path or specify the credentials path via environment variables.

Option 3: Docker installation. Clone the project, place your OAuth credentials in the container context, and start the services with Docker Compose. Follow the HTTP transport deployment guidance for further configuration options.

Configuration and environment

Environment variables you may use with the MCP server include the credentials path required for Google OAuth and any tool filtering you want to apply. Tokens are stored on your system securely and credentials never leave your machine.

Tool filtering lets you enable only a subset of available capabilities to optimize performance and security. For example, you might enable only listing and creating events while keeping other operations disabled.

Security and troubleshooting

Ensure your OAuth credentials file uses a Desktop App type and that your user is added as a Test User in the Google Cloud Console. If you encounter authentication issues, re-authenticate or re-download credentials and verify that the proper file paths are in place. If tokens expire in test mode, re-authenticate to refresh them.

If you see build or runtime errors, verify Node.js version compatibility, reinstall dependencies, and ensure you are running in the expected environment (npx vs local). For authentication hiccups during browser-based sign-in, try manual authentication steps or switch to a Chromium-based browser for best results.

Available tools

list-calendars

List all available calendars for the connected Google accounts.

list-events

List events with date filtering across one or more calendars.

get-event

Get details of a specific event by its ID.

search-events

Search events by text query across calendars.

create-event

Create new calendar events.

update-event

Update existing calendar events.

delete-event

Delete events from calendars.

respond-to-event

Respond to event invitations (Accept, Decline, Maybe, No Response).

get-freebusy

Check availability across calendars, including external calendars.

get-current-time

Get the current date and time in the calendar's timezone.

list-colors

List available event colors.

manage-accounts

Add, list, or remove connected Google accounts.