Suggest a server AI tools directory →

Google Calendar MCP server

Last verified: 2026-09

List and create calendar events.

Community Chat, mail & docs Needs a secret Claude Desktop, Cursor, Windsurf, Claude Code

What it does

Calendar CRUD: list calendars and events, search, create, update, delete, respond to invites. Google OAuth.

It sits in Chat, mail & docs: These servers act as the bot or the integration you install.

Good for

  • List tomorrow's events on a secondary calendar.
  • Search events by text without opening Calendar.
  • Create a hold on a test calendar, not the company one.
  • Respond to an invite only when you meant to.

Tools

  • list-calendars / list-events / get-event / search-events — Read the calendar.
  • create-event / update-event / delete-event — Write.
  • respond-to-event — Accept / decline / maybe.

Config (Claude Desktop / Cursor / Windsurf)

Paste the JSON below. Same mcpServers shape. Replace placeholder paths and secrets. Windows paths look like C:\\Users\\you\\project, not /path/to. Host-side steps →

Claude Desktop

OSConfig file
macOS~/Library/Application Support/Claude/claude_desktop_config.json
Windows%APPDATA%\Claude\claude_desktop_config.json (usually C:\Users\<you>\AppData\Roaming\Claude\)
Linux~/.config/Claude/claude_desktop_config.json

Cursor

ScopemacOS / LinuxWindows
This project.cursor/mcp.json in the repo root
This user~/.cursor/mcp.json %USERPROFILE%\.cursor\mcp.json

Windsurf

OSConfig file
macOS / Linux~/.codeium/windsurf/mcp_config.json
Windows%USERPROFILE%\.codeium\windsurf\mcp_config.json
{
  "mcpServers": {
    "google_calendar": {
      "command": "npx",
      "args": [
        "-y",
        "@cocal/google-calendar-mcp"
      ],
      "env": {
        "GOOGLE_OAUTH_CREDENTIALS": "/path/to/gcp-oauth.json"
      }
    }
  }
}

Windsurf remote MCP: use serverUrl instead of url if the block below is HTTP.

One-liner: npx -y @cocal/google-calendar-mcp

Secrets it wants: Google OAuth

Source repo →

How to get started

  1. Google Cloud OAuth client with Calendar scopes. First run opens a browser.
  2. Ask it to list-events for tomorrow before create-event.
  3. Use a secondary calendar if you are testing.

Access risk

delete-event and create-event will surprise coworkers. OAuth is the Google account.

When to skip it

Skip it if you only needed Gmail, or if scheduling is in Calendly you do not want a bot to edit.

Instead: Gmail, Notion, Asana.

Vs alternatives

ServerOfficial?Needs a secret?Best for
Google CalendarNoYesList and create calendar events.
GmailNoYesRead and draft Gmail.
NotionNoYesSearch and update Notion pages.
AsanaNoYesTasks and projects in Asana.

More in Chat, mail & docs

All 18 in this category →

FAQ

What can delete-event do?

Delete real events. Coworkers notice. Use a secondary calendar while testing.

OAuth file?

GOOGLE_OAUTH_CREDENTIALS / a GCP OAuth client. First run opens a browser.

Calendar or Gmail?

Calendar scopes are enough for events. Do not add Gmail 'just in case'.

Multiple calendars?

list-calendars then pass the calendar id. Do not assume 'primary' is what you want.