Back to MCP Servers

Google Calendar MCP Server

Community MCP server for Google Calendar. Manage events, check availability, and coordinate meetings across multiple Google accounts.

Collaboration by nspady (community) OAuth2 active
Overview

Google Calendar MCP Server is an open-source Model Context Protocol server that connects AI assistants to Google Calendar. It exposes tools for listing calendars, reading and searching events, creating, updating, and deleting events, responding to invitations, and checking free/busy availability across calendars. The project is maintained by nspady and is one of the more popular community implementations, with active releases and TypeScript as the primary language.

A notable feature is multi-account support: you can connect multiple Google accounts (for example work and personal) and query them in a single session, with cross-account conflict detection. The server also handles advanced recurring event modifications, natural language date and time parsing, and can import event details from images, PDFs, or web links pasted into the chat. Tool filtering through an ENABLED_TOOLS env var lets you restrict capabilities and reduce token usage.

Google does not publish an official Google Calendar MCP server, so this community project (distributed via the @cocal/google-calendar-mcp npm package) is one of the canonical options. It requires you to set up OAuth 2.0 Desktop App credentials in a Google Cloud project with the Calendar API enabled.

Tools

Tool Description
list-calendars Enumerate available calendars across connected accounts.
list-events Retrieve events with date and calendar filtering.
get-event Fetch specific event details by ID.
search-events Query events by free-text search.
create-event Add a new event to a calendar, including recurrence and attendees.
update-event Modify an existing event, including individual instances of recurring events.
delete-event Remove an event from a calendar.
respond-to-event Accept, decline, or tentatively respond to a calendar invitation.
get-freebusy Check availability across one or more calendars.
get-current-time Retrieve current time in a given calendar timezone.
list-colors Display available event color IDs.
manage-accounts Add or remove connected Google accounts.
Setup Guide

Prerequisites

  • A Google Cloud project with the Google Calendar API enabled
  • OAuth 2.0 credentials of type Desktop App downloaded as gcp-oauth.keys.json
  • Your Google account added as a test user in the OAuth consent screen (or the app published to production)
  • Node.js available locally for npx

Install via npx (Claude Desktop)

Edit your Claude Desktop config:

  • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
  • Windows: %APPDATA%\Claude\claude_desktop_config.json
{
  "mcpServers": {
    "google-calendar": {
      "command": "npx",
      "args": ["@cocal/google-calendar-mcp"],
      "env": {
        "GOOGLE_OAUTH_CREDENTIALS": "/path/to/your/gcp-oauth.keys.json"
      }
    }
  }
}

Environment variables

  • GOOGLE_OAUTH_CREDENTIALS (required when using npx): absolute path to your OAuth credentials JSON
  • GOOGLE_CALENDAR_MCP_TOKEN_PATH (optional): custom token storage location
  • ENABLED_TOOLS (optional): comma-separated allow-list of tool names to expose

First-time auth

After restarting Claude Desktop, ask the assistant to "Authenticate with Google Calendar." A browser window will open for OAuth consent. Tokens in test mode expire after 7 days; publishing the OAuth app to production removes that limit.

Use Cases
  • Schedule meetings via natural language ("book 30 min with Alex next Tuesday afternoon") with conflict checking across work and personal calendars
  • Use get-freebusy to find shared availability across multiple invitees before proposing times
  • Bulk-create or update recurring events, including modifying individual instances without touching the whole series
  • Triage incoming invitations: list pending events and use respond-to-event to accept or decline them in batch
  • Import event details from a pasted screenshot, PDF, or webpage and have the assistant create the matching calendar event
Example Prompts
  • "What meetings do I have tomorrow across my work and personal calendars?"
  • "Find a 45 minute slot next week when both me and jane@example.com are free, and create an event called 'Q3 planning'."
  • "Search my calendar for any events mentioning 'onboarding' in the next 30 days."
  • "Decline the 'Status sync' recurring meeting for this Friday only, keep the rest of the series."
  • "Move my 3pm today to 4pm and add Bob as an attendee."
Pros
  • Comprehensive tool coverage including freebusy, recurrence editing, invitation responses, and multi-account support
  • Active maintenance with regular releases and a healthy star count
  • Tool filtering via ENABLED_TOOLS lets you reduce context usage or restrict write access
  • Installable with a single npx command, no global build required
Limitations
  • Community-maintained, not an official Google project
  • Requires manual Google Cloud OAuth setup (project, API enablement, Desktop App credentials, test users)
  • Test mode tokens expire every 7 days unless the OAuth app is published to production
Alternatives