proton-calendar-mcp
Allows reading events from a Proton Calendar using a secret ICS share link, with tools to list, search, and get event details.
Click on "Deploy 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., "@proton-calendar-mcplist my events for this week"
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.
proton-calendar-mcp
An MCP server for reading — and eventually modifying — a Proton Calendar.
Architecture
Proton Calendar has no public API and no CalDAV support, and event data is end-to-end encrypted. This server is built in phases:
Phase 1 (working): reads via the calendar's secret ICS share link (Proton Calendar → Settings → Calendars → Share via link, "full view"). The feed is fetched on demand and cached for 60 seconds. Recurring events are expanded into concrete occurrences (RRULE, EXDATE, and overridden instances are honored).
Phase 2 (planned): writes. See DEVELOPMENT.md once started.
Related MCP server: iCloud Calendar MCP
Tools
Tool | Purpose |
| Events in a date range (default: next 7 days) |
| Text search over title/description/location |
| Full details for one event by UID |
Setup
npm install
npm run buildConfigure in your MCP client (e.g. claude_desktop_config.json):
{
"mcpServers": {
"proton-calendar": {
"command": "node",
"args": ["/path/to/proton-mcp/dist/index.js"],
"env": {
"PROTON_ICS_URL": "https://calendar.proton.me/api/calendar/v1/url/..."
}
}
}
}The ICS URL is a secret — anyone holding it can read the calendar. Keep it out of version control.
Development
npm run dev # tsc --watchSmoke test without an MCP client by piping JSON-RPC over stdin:
printf '%s\n' \
'{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2025-06-18","capabilities":{},"clientInfo":{"name":"test","version":"0"}}}' \
'{"jsonrpc":"2.0","method":"notifications/initialized"}' \
'{"jsonrpc":"2.0","id":2,"method":"tools/call","params":{"name":"list_events","arguments":{}}}' \
| PROTON_ICS_URL="..." node dist/index.jsThis server cannot be deployed
Maintenance
Related MCP Connectors
Extracts calendar events from natural-language text, with .ics and calendar links.
Read the .ics your calendar exports: events in a window, free-busy, double bookings, export.
Calendar API for AI agents: events, availability, Google/Microsoft setup, scheduling, and iCal.
Connects ChatGPT to your Apple Calendar via a local Mac agent + Vercel relay
Related MCP Servers
- FlicenseAqualityDmaintenanceEnables access to Google Calendar events from a public ICS feed, allowing users to list and search calendar events within specific date ranges with automatic handling of recurring events.2-
- FlicenseNot gradedqualityDmaintenanceEnables users to view and create events in their iCloud Calendar using natural language through supported LLMs. It integrates with Apple's infrastructure via app-specific passwords to provide secure calendar management.1-
- AlicenseNot gradedqualityAmaintenanceA read-only MCP server that exposes iCalendar feeds as queryable tools for LLM agents, enabling calendar event retrieval and filtering.MIT
- AlicenseNot gradedqualityDmaintenanceEnables reading and interacting with ICS calendar feeds (e.g., Outlook, Google Calendar) with recurring event expansion, caching, and timezone support.MIT