Google Calendar MCP Server
Provides access to Google Calendar API to list and retrieve calendar events.
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 Server list my upcoming events"
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
An MCP (Model Context Protocol) server that provides access to the Google Calendar API, allowing AI assistants to interact with Google Calendar data.
Features
List and retrieve items from the Google Calendar API
Async HTTP client with error handling
Typed responses with Pydantic models
Related MCP server: gcal-mcp
Installation
Using mpak (Recommended)
# Configure your API key
mpak config set @JoeCardoso13/google-calendar access_token=your_oauth_token_here
# Run the server
mpak run @JoeCardoso13/google-calendarManual Installation
# Clone the repository
git clone https://github.com/NimbleBrainInc/mcp-google-calendar.git
cd mcp-google-calendar
# Install dependencies with uv
uv sync
# Set your OAuth access token
export GOOGLE_CALENDAR_ACCESS_TOKEN=your_oauth_token_here
# Run the server
uv run python -m mcp_google_calendar.serverConfiguration
Getting Your Access Token
Google Calendar requires OAuth 2.0 access tokens (not API keys). The easiest way to get one for testing:
Select "Google Calendar API v3" and check the scopes you need
Click "Authorize APIs" and sign in with your Google account
Click "Exchange authorization code for tokens"
Copy the access token (expires after 1 hour)
Claude Desktop Configuration
Add to your ~/.claude/settings.json:
{
"mcpServers": {
"google-calendar": {
"command": "mpak",
"args": ["run", "@JoeCardoso13/google-calendar"]
}
}
}Available Tools
Tool | Description |
| List items from the API with optional limit |
| Get a single item by its ID |
Development
# Install dev dependencies
uv sync --dev
# Run tests
uv run pytest tests/ -v
# Format code
uv run ruff format src/ tests/
# Lint
uv run ruff check src/ tests/
# Type check
uv run ty check src/
# Run all checks
make checkLicense
MIT
Available Tools
10 toolscreate_eventCreate EventA
Create a new calendar event.
For timed events, provide start_datetime and end_datetime (RFC3339). For all-day events, provide start_date and end_date (yyyy-mm-dd).
Inputs: summary (required), end_date, location, timezone, +7 more. Returns: result
delete_eventDelete EventC
Delete a calendar event.
Inputs: event_id (required), calendar_id. Returns: result
get_calendarGet CalendarB
Get metadata for a specific calendar.
Inputs: calendar_id (required). Returns: result
get_eventGet EventB
Get a single event by ID.
Inputs: event_id (required), calendar_id. Returns: result
list_calendarsList CalendarsB
List all calendars the user has access to.
Inputs: page_token. Returns: result
list_eventsList EventsC
List events from a calendar within a time range.
Inputs: order_by, time_max, time_min, page_token, +2 more. Returns: result
query_freebusyQuery FreebusyA
Check free/busy status for one or more calendars in a time range.
Inputs: time_max (required), time_min (required), calendar_ids. Returns: result
quick_add_eventQuick Add EventB
Create an event from a natural language string.
Examples: "Lunch with Bob tomorrow at noon", "Team standup every weekday 9am"
Inputs: text (required), calendar_id. Returns: result
search_eventsSearch EventsB
Full-text search across event summaries, descriptions, and locations.
Inputs: query (required), time_max, time_min, calendar_id, +1 more. Returns: result
update_eventUpdate EventA
Update an existing calendar event. Only provided fields are changed.
Inputs: event_id (required), summary, end_date, location, +7 more. Returns: result
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 10 tools
Each tool has a clearly distinct purpose: listing calendars vs. getting metadata, listing vs. getting vs. searching events, and free/busy querying. The only potential overlap is between create_event and quick_add_event, but quick_add is explicitly for natural language input, making them distinct.
All tool names follow a consistent verb_noun pattern (list_calendars, get_event, create_event, etc.), with clear and predictable naming. The pattern is uniform across all tools.
10 tools is well-scoped for a Google Calendar integration, covering core operations without bloat. Each tool earns its place by addressing a specific need.
The toolset provides full CRUD for events (create, get, update, delete, list, search), plus calendar listing/metadata and free/busy querying. This covers the essential lifecycle for calendar management, with no obvious gaps.
Maintenance
Related MCP Connectors
Hosted Google Calendar MCP server for AI agents. No self-hosting or Google Cloud setup.
A MCP server that works with Google Calendar to manage event listing, reading, and updates.
MCP server connecting AI agents to 100+ apps (Gmail, Slack, Notion, GitHub) via one-click OAuth.
MCP server for Argo RPG Platform — connects AI assistants to campaign data via OAuth2
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceAn MCP server that enables AI assistants to interact with Google Calendar and Gmail, allowing users to manage events, send emails, and organize their inbox through natural language.MIT
- FlicenseNot gradedqualityDmaintenanceA Model Context Protocol (MCP) server for read-only Google Calendar integration, providing calendar access to AI assistants.-
- AlicenseNot gradedqualityDmaintenanceAn MCP server that enables AI assistants to manage Google Calendar events, calendars, sharing, and scheduling with full read/write access across multiple Google accounts, supporting natural language creation, recurring events, and Google Meet.40 npmMIT
- AlicenseNot gradedqualityDmaintenanceA production-ready MCP server that lets AI assistants interact with your personal Google Calendar using the Google Calendar API and OAuth 2.0.84 npmMIT