google-calendar-mcp
MCP server for Google Calendar that enables listing, creating, updating, and deleting events, quick-add from natural language, responding to invitations, and checking availability across multiple accounts.
README
google-calendar-mcp
MCP server for Google Calendar: list/create/update/delete events, quick-add from natural language, respond to invitations, and check free/busy availability across one or more accounts.
Why not the official Google Calendar MCP connector?
Google has started offering official remote MCP servers per Workspace app (Gmail, Sheets, Docs, Drive, Calendar). The Calendar one is convenient but, as of writing, ties one Google account to one connector authorization — if you need several independent Google identities available as separate MCP servers at the same time, you need one token per account, which this self-hosted server supports natively.
Tools (9)
| Tool | What it does |
|---|---|
list_calendars |
List all calendars the account can access (id, name, whether it's primary) |
list_events |
List events in a date range, optional free-text filter |
get_event |
Full detail of one event |
create_event |
Create an event (supports all-day and attendees) |
quick_add_event |
Create an event from natural language (e.g. "Meeting tomorrow at 10am") |
update_event |
Update only the fields you pass on an existing event |
respond_to_event |
Accept/decline/mark tentative on an invitation |
delete_event |
Delete an event — destructive, requires confirmed=True |
check_availability |
Free/busy query across one or more calendars in a time range |
Setup
- Create a Google Cloud project (or reuse one) and enable the Google Calendar API.
- Create an OAuth 2.0 Client ID of type "Desktop app" and download it as
client_secret.json. - If the app is in "Testing" mode, add your Google account(s) as test users.
- Install dependencies:
python3 -m venv .venv source .venv/bin/activate pip install -r requirements.txt - Run the OAuth flow once per account you want to expose:
This opens a browser — log in and grant access. The token is saved toCLIENT_SECRET_PATH=~/.config/google-calendar-mcp/client_secret.json \ python3 setup_auth.py personal~/.config/google-calendar-mcp/token_personal.json. Repeat with a different account label for each additional identity.
MCP client configuration
{
"mcpServers": {
"google-calendar": {
"command": "/path/to/.venv/bin/python3",
"args": ["/path/to/google-calendar-mcp/server.py"],
"env": {
"GOOGLE_CALENDAR_TOKEN_PATH": "~/.config/google-calendar-mcp/token_personal.json"
}
}
}
}
To expose a second account, add another entry pointing at the same
server.py with a different GOOGLE_CALENDAR_TOKEN_PATH.
| Env var | Purpose |
|---|---|
GOOGLE_CALENDAR_TOKEN_PATH |
Path to the OAuth token for this account |
Notes
create_event/update_eventdetect an all-day event automatically whenstart/endare a bareYYYY-MM-DDdate instead of a full ISO 8601 timestamp.delete_eventfollows a confirm-first pattern: withoutconfirmed=Trueit returns the event summary and arequires_confirmation: trueflag instead of deleting anything.respond_to_eventlooks for the attendee entry flagged asselfin the event's attendee list — you don't need to pass the account's own email.
License
MIT — see LICENSE.
Recommended Servers
playwright-mcp
A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.
Magic Component Platform (MCP)
An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.
Audiense Insights MCP Server
Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.
VeyraX MCP
Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.
graphlit-mcp-server
The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.
Kagi MCP Server
An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.
E2B
Using MCP to run code via e2b.
Neon Database
MCP server for interacting with Neon Management API and databases
Exa Search
A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.
Qdrant Server
This repository is an example of how to create a MCP server for Qdrant, a vector search engine.