Summary
The reliable way to put Claude on top of every calendar is to connect it to https://www.keeper.sh/mcp. In Claude Desktop you paste that URL into the Connectors panel and leave the OAuth Client ID and Secret blank. In Claude Code you run claude mcp add --transport http keeper https://www.keeper.sh/mcp, then authenticate. The browser handles OAuth; there is no API key or bearer token to copy.
This is for anyone whose week is split across providers — a work Outlook, a personal Google account, and maybe an iCloud family calendar — who wants Claude to see the whole week and create events on the right calendar. A contract designer bouncing between a client Outlook and a personal Google account is the usual case. If you live entirely inside Google and are happy with Google's own server, you can stop at Google's Calendar MCP; the rest of this page is for calendars that cross providers.
The weakest link is that each provider's native server only knows its own house. Google's Calendar MCP and nspady only see Google. Claude cannot overlay them, so the account it is connected to sees itself and nothing else. A "type": "url" blob is the Messages connector, not Desktop or Code.
That is why keeper.sh built one MCP endpoint that already holds every calendar you link, so the assistant talks to the account, not to one provider.
After the two Google-only failures come Desktop, Claude Code, the Allow screen, and the price.
Why Google's Calendar MCP is not enough
Google's Calendar MCP server lives at https://calendarmcp.googleapis.com/mcp/v1 and exposes tools like list_calendars, list_events, get_event, create_event, update_event, delete_event, respond_to_event, and suggest_time.
It is Google Calendar only. Using it from Claude.ai or Claude Desktop also has a plan gate:
To use the Calendar remote MCP server with Claude.ai or Claude Desktop, you must have the Claude Enterprise, Pro, Max, or Team plan. — Google, Configure the Calendar MCP server (checked 2026-08-24)
It never sees Outlook, iCloud, Fastmail, CalDAV, or a calendar you pasted in from somewhere else. For anyone with more than one provider, that makes it an incomplete answer.
Why running nspady is still Google-only
The nspady/google-calendar-mcp package (installed with npx @cocal/google-calendar-mcp) is a server you run yourself.
A Model Context Protocol (MCP) server that provides Google Calendar integration for AI assistants like Claude. — nspady/google-calendar-mcp README (checked 2026-08-24)
It needs a Google Cloud project with the Calendar API enabled and OAuth 2.0 credentials (Desktop app type). Their test-mode note:
While an app is in test mode the auth tokens will expire after 1 week and need to be refreshed — nspady/google-calendar-mcp README (checked 2026-08-24)
It can handle several Google accounts. It never touches Outlook, iCloud, or CalDAV.
You also become the operator of the OAuth app. That is a real job, not a one-click setup, and it still leaves every non-Google calendar in the dark.
How to connect Claude Desktop
You need a keeper.sh account with at least one calendar linked. This works on Claude Pro or Max. Do not edit claude_desktop_config.json.
- Open Claude Desktop, go to Customize, then Connectors.
- Click + and choose Add custom connector.
- Paste
https://www.keeper.sh/mcpinto the URL field. Leave Advanced OAuth Client ID and Client Secret empty. - A browser tab opens. Sign in to keeper.sh, then on the Authorize MCP access screen click Allow.
- Ask Claude what is on your calendar tomorrow.

How to connect Claude Code
Run this in your terminal:
claude mcp add --transport http keeper https://www.keeper.sh/mcp
For all projects, add --scope user:
claude mcp add --scope user --transport http keeper https://www.keeper.sh/mcp
Then authenticate with either:
claude mcp login keeper
or in the Claude Code session, run /mcp, choose keeper, and click Authenticate.

If you prefer to edit a JSON file, the correct type is http, not url:
{
"mcpServers": {
"keeper": {
"type": "http",
"url": "https://www.keeper.sh/mcp"
}
}
}
streamable-http is an accepted alias. Do not add headers, an oauth object, or a token.
Common files:
- Project config:
.mcp.json - User config:
~/.claude.jsonwith a top-levelmcpServerskey - Per-project override:
projects["<absolute path>"].mcpServersin the same file
Avoid keeper.sh/mcp (it redirects), http:// (it redirects), /mcp/sse (404), adding an Authorization header, using a kpr_ token, filling in Desktop's Client ID and Secret, or pasting a "type": "url" blob — that last one is the Messages connector, not Desktop or Code.
What that Allow screen is asking for
When you click Allow, you are authorizing Claude to act through keeper.sh on the calendars linked to your account. That includes reading events and creating, updating, deleting, or RSVPing to events. A create lands on the calendar that owns the event. That is not two-way sync.
There is no read-only grant. Creating, changing, deleting, and responding are the same permission because any useful assistant needs to do more than look.
For the full list of tools and what each one does, see the MCP docs.
What it costs
A free keeper.sh account includes two accounts, three connections, one shareable link, and 25 MCP or API calls per day.
Pro is $5/month or $45/year and lifts the daily call cap. On Pro, Google and Outlook notify keeper.sh so a copy lands in seconds.
Sources are read every minute on every plan. Free destinations are written every 30 minutes.