mcp-google-calendar
mcp-google-calendar
A minimal MCP server for Google Calendar using OAuth 2.0 and the Google Calendar API.
Tools
connect_calendar()andcalendar_health()list_calendars()list_events(...)andget_event(...)create_event(...), with recurrence, attendees, and optional Google Meetupdate_event(...)anddelete_event(...)list_calendar_acl(...)andshare_calendar(...)watch_calendar_events(...)list_event_changes(...)
create_event, update_event, delete_event, share_calendar, and
watch_calendar_events have external side effects. MCP clients should request
explicit confirmation before calling them.
Setup
Enable the Google Calendar API in Google Cloud Console.
Create an OAuth client with application type Desktop app.
Download the OAuth file as
credentials.jsoninto this directory.Install dependencies and start the server:
python -m venv .venv
.venv\Scripts\activate
pip install -r requirements.txt
python server.pyAuthorization is a two-step tool call, so it works the same whether this server runs on your laptop or on a machine with no browser at all:
Call
google_auth_start. It returns an authorization URL.Approve access in a browser — any browser, on any device.
Call
google_auth_completewith the URL you land on.
On a desktop, steps 2 and 3 usually happen by themselves: the browser is opened
for you and the redirect is caught on http://localhost:8765 (set
GOOGLE_OAUTH_PORT to change it).
On a headless server, or when you approve on a phone, that redirect cannot be
reached and the browser shows a connection error. That is expected — the
authorization code is in the address bar. Copy the whole URL
(http://localhost:8765/?code=...) and pass it to google_auth_complete, which
also accepts the bare code value.
Both credentials.json and token.json are ignored by Git.
Optional .env configuration:
GOOGLE_CREDENTIALS=credentials.json
GOOGLE_TOKEN=token.json
GOOGLE_CALENDAR_TIMEZONE=Asia/JakartaMCP Client
{
"mcpServers": {
"google-calendar": {
"command": "python",
"args": [
"C:/Users/your-user/Documents/GitHub/mcp-google-calendar/server.py"
]
}
}
}Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/algonacci/mcp-google-calendar'
If you have feedback or need assistance with the MCP directory API, please join our Discord server