Google Calendar MCP Server
Community MCP server for Google Calendar. Manage events, check availability, and coordinate meetings across multiple Google accounts.
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. |
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 JSONGOOGLE_CALENDAR_MCP_TOKEN_PATH(optional): custom token storage locationENABLED_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.
- Schedule meetings via natural language ("book 30 min with Alex next Tuesday afternoon") with conflict checking across work and personal calendars
- Use
get-freebusyto 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-eventto 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
- "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."
- 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_TOOLSlets you reduce context usage or restrict write access - Installable with a single
npxcommand, no global build required
- 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
- taylorwilsdon/google_workspace_mcp: broader Google Workspace coverage (Gmail, Drive, Docs, Sheets, Calendar, etc.)
- GongRzhe/Calendar-Autoauth-MCP-Server: alternative Google Calendar MCP server with auto-auth flow
- j3k0/mcp-google-workspace: combined Gmail and Calendar MCP server