The popular open-source self-hosted Google Calendar MCP server vs CalendarMCP. Setup, features, limits, and the kind of user each one is built for.
The most popular self-hosted Google Calendar MCP server is nspady/google-calendar-mcp. It is open source, runs on your laptop, and works well. CalendarMCP is the hosted alternative.
We get asked which one to pick almost every week. Here is the real answer, from people who would obviously prefer you pick CalendarMCP and still cannot pretend self-hosted is wrong for everyone.
Most users land in the second bucket. Plenty land in the first. Both are valid.
The nspady project is a clean, focused implementation. It speaks stdio MCP, uses the standard Google Calendar API, and runs locally. Specifically:
For a security-conscious solo developer using Claude Desktop, this is genuinely the right answer. We will not pretend otherwise.
The README walks you through:
This is not hard. It is also 25 to 40 minutes the first time, and most of those minutes are spent in Google Cloud Console, not your terminal.
nspady uses stdio MCP, which is great for desktop clients but cannot serve Claude.ai, Claude Code, Cursor, or any web-based MCP client. Those need HTTP. If your workflow uses any of those, self-hosted does not help you without writing a wrapper.
The standard nspady flow connects one Google account at a time. If you have a personal calendar and a work calendar in different Google domains, you have to juggle credentials. CalendarMCP handles this with one API key fanning out across as many connected accounts as you need.
nspady ships per-event tools. To rename twenty meetings, you make twenty tool calls, each round-tripping through Claude. CalendarMCP's batch_update sends the whole set in one call.
If your OAuth consent screen is in testing mode (which it will be unless you go through Google's verification process), your refresh tokens expire every 7 days. You then re-authenticate. Every week.
Verifying a Google OAuth app is a 1 to 6 week process involving privacy policy review and a security audit. Most self-hosters never bother. They just re-auth every week.
Google Advanced Protection is the security mode you turn on if you are a journalist, executive, or activist. It blocks most OAuth apps cold. nspady cannot get past it because it is an OAuth app. CalendarMCP works because it offers a service account flow that does not require OAuth at all.
nspady wins on one axis cleanly: your refresh token never leaves your machine. If that matters more than every other feature combined, self-host. We mean it. We have customers who have moved to CalendarMCP for the features and customers who have moved to self-hosted for the privacy posture. Both moves were the right call for that team.
CalendarMCP minimises what we hold (only the Google Calendar scope, nothing else from your Google account), encrypts at rest, and never reads your event content unless you make a tool call. That is genuinely the floor for any hosted calendar service. If your threat model rejects that, you are correct to self-host.
The most common moment users move:
Switching is straightforward. The tools and the prompts your agent uses are similar enough that most workflows port without changes. You revoke the OAuth app in Google account settings, connect CalendarMCP, and update your client config. Twenty minutes of work, including coffee.
If we were a closed-source service throwing rocks at an open-source project, this would be a different post. We are not. nspady is good. It also has limits that show up the moment your usage grows past a single client. CalendarMCP is the hosted answer for everyone who already hit one of those limits or who would rather not learn where they live.
Pick the tool whose constraints match yours. Either way you have a calendar that talks to your agent in under an hour.
Connect your Google Calendar to Claude and any MCP client in about two minutes.
Connect Google Calendar