leo-google-calendar-mcp
Syncs Google Calendar data into Leo's calendar provider, returning calendars and their events via a sync_user tool. Handles all-day event boundaries, skips cancelled or recurring instances, and preserves absent optional fields.
Click on "Install 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., "@leo-google-calendar-mcpsync my Google Calendar into Leo"
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.
leo-google-calendar-mcp
Google Calendar as a Leo calendar provider, over MCP. Fills the calendar
provider role; Leo's own calendar screen, agenda and search read what it syncs.
The contract
Tool | Arguments | Returns |
|
|
|
It touches no database and owns no OAuth app. The hub writes
calendar_events from what this returns, and mints an access token per call
from the Google account you already connected — so moving this package out of
Leo's binary costs you no re-authorization.
Calendars, not a flat event list. The hub sweeps events that vanished upstream, and that sweep is scoped to one calendar: a pass that read two calendars and failed on the third must not have the third's events taken as deleted. The shape carries that scope.
Related MCP server: Google-Calendar Universal MCP
What the tests pin
The Google API's errors are loud. A misread event is not — it lands as a real row on a real calendar, on the wrong days.
Google's all-day end date is exclusive; Leo's is inclusive. A one-day event on the 9th arrives as
start 03-09, end 03-10. Stored verbatim, every all-day event is a day too long and a single-day one renders across two. Month, year and leap-day boundaries are all checked.Three kinds of event are skipped, each for a non-obvious reason. A
cancelledevent is listed by Google, and the hub's sweep only removes what a pass did not list — so keeping it would leave a deleted event alive forever. An instance of a series (recurringEventId) arrives beside its master; this hub stores one master carrying an RRULE and expands on read, so importing instances writes duplicates on top of that expansion. And an event with no usable start/end cannot be placed at all.singleEvents=falsefor the same reason — one master with its rule, not hundreds of expanded rows the reader expands again.Absent optionals stay absent. The hub takes
Option<&str>;Some("")would overwrite a description the user had with an empty one.
Development
npm install
node test.js # no network neededThis server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- FlicenseNot gradedqualityDmaintenanceIntegrates Google Calendar with AI assistants via MCP, enabling calendar listing and event CRUD operations.
- AlicenseNot gradedqualityDmaintenanceEnables interaction with Google Calendar through a unified MCP API for managing events, calendars, and related tools.MIT
- FlicenseDqualityBmaintenanceMCP server for interacting with Google Calendar, enabling reading events from public calendars and, with OAuth, creating, updating, and deleting events.1
- FlicenseNot gradedqualityDmaintenanceEnables seamless Google Calendar integration with MCP-compatible clients, allowing creation, viewing, updating, and deletion of calendar events via OAuth 2.0 authentication.
Related MCP Connectors
Hosted Google Calendar MCP server for AI agents. No self-hosting or Google Cloud setup.
Google Events listings with dates, venues, and ticket links via a hosted MCP server.
Calendar API for AI agents: events, availability, Google/Microsoft setup, scheduling, and iCal.
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/TheBananaStand/leo-google-calendar-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server