google-calendar-mcp
Allows reading, creating, updating, and deleting Google Calendar events, including listing upcoming events, searching by keyword, and finding free time slots.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@google-calendar-mcp What's on my calendar this week?"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Google Calendar MCP Server
A Model Context Protocol (MCP) server that connects Claude Desktop to Google Calendar — letting Claude read, create, update, and delete events directly from conversation.
Demo
Ask Claude things like:
"What's on my calendar this week?"
"Schedule a meeting with John tomorrow at 2pm"
"Find a free hour on Friday afternoon"
"Move my 3pm call to 4pm"
Related MCP server: MCP Calendar Server
Tools
Tool | Description |
| List upcoming events for the next N days |
| Search events by keyword |
| Create a new event with title, time, location, attendees |
| Edit an existing event |
| Delete an event by ID |
| Find open time slots on a given day (8am–6pm) |
Tech Stack
TypeScript + Node.js
MCP SDK (
@modelcontextprotocol/sdk) — Anthropic's standard for AI tool integrationGoogle Calendar API v3 via
googleapisOAuth 2.0 — desktop app flow with local callback server
Setup
1. Google Cloud Console
Create a project at console.cloud.google.com
Enable the Google Calendar API
Create OAuth credentials → Desktop app → download
credentials.jsonAdd your email as a test user under OAuth consent screen → Audience
2. Install & Authenticate
git clone https://github.com/coldinnn/google-calendar-mcp
cd google-calendar-mcp
npm install
cp /path/to/downloaded/credentials.json .
npm run setup # opens browser for OAuth — saves token.json3. Connect to Claude Desktop
Add to ~/Library/Application Support/Claude/claude_desktop_config.json:
{
"mcpServers": {
"google-calendar": {
"command": "node",
"args": ["/absolute/path/to/google-calendar-mcp/dist/server.js"]
}
}
}Restart Claude Desktop — the calendar tools will appear automatically.
Project Structure
src/
auth.ts # OAuth2 client — loads credentials, refreshes tokens
setup.ts # One-time setup: generates auth URL, catches callback, saves token
server.ts # MCP server — defines all 6 toolsHow It Works
setup.ts starts a local HTTP server on port 3000, generates an OAuth URL, and waits for Google to redirect back with an authorization code. It exchanges the code for access + refresh tokens and saves them to token.json.
server.ts uses McpServer + StdioServerTransport from the MCP SDK. Claude Desktop launches it as a subprocess and communicates over stdin/stdout. Each tool call hits the Google Calendar API and returns formatted text back to Claude.
Token refresh is handled automatically on every request — no manual re-auth needed.
License
MIT
Available Tools
6 toolscreate_eventB
Create a new calendar event.
Inputs: end (required), start (required), title (required), location, +2 more.
delete_eventB
Delete a calendar event by its ID.
Inputs: event_id (required).
find_free_timeB
Find available time slots on a given day between 8am and 6pm.
Inputs: date (required), duration_minutes.
list_eventsB
List upcoming calendar events for the next N days.
Inputs: days_ahead, max_results.
search_eventsC
Search for calendar events by keyword.
Inputs: query (required), days_ahead.
update_eventA
Update an existing calendar event. Only provide fields you want to change.
Inputs: event_id (required), end, start, title, +2 more.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 6 tools
Each tool has a clear, distinct purpose: CRUD operations (create, delete, update), retrieval (list, search), and availability checking (find_free_time). No overlapping functionality.
All tool names follow a consistent verb_noun pattern with underscores (e.g., create_event, find_free_time), making them predictable and easy to understand.
6 tools is well-scoped for a calendar server, covering essential operations without being overwhelming. Each tool serves a unique and necessary function.
The set covers create, read, update, delete, search, and free-time lookup. Missing a dedicated get_event by ID, but list/search can provide IDs. Minor gap, but overall sufficient for basic calendar management.
Maintenance
Related MCP Connectors
Calendar API for AI agents: events, availability, Google/Microsoft setup, scheduling, and iCal.
Lets Claude, ChatGPT, and Muse read and update your beckett tasks, notes, calendar, and lists.
Create and update subscription calendars from ChatGPT, Claude, or Codex.
Multiple Google accounts (Gmail, Calendar, Drive, Contacts, Tasks) in one Claude connector.
Related MCP Servers
- FlicenseNot gradedqualityDmaintenanceAllows interaction with Google Calendar through Claude Desktop using the Model Context Protocol, enabling calendar event management and schedule analysis.2-
- AlicenseNot gradedqualityDmaintenanceConnects Claude Desktop to Google Calendar for local calendar management including adding, updating, and deleting events, checking schedules, and calculating travel time between meetings.1ISC
- AlicenseNot gradedqualityDmaintenanceEnables Claude to interact with Google Calendar through natural language, providing the ability to view, create, update, and delete calendar events with persistent OAuth2 authentication.22 npmMIT
- AlicenseNot gradedqualityDmaintenanceEnables Claude to interact with Google Calendar through OAuth authentication, allowing users to list events, create and manage meetings, update or delete calendar entries, and find available time slots using natural language.72MIT