webcal-mcp
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., "@webcal-mcpList events on my personal calendar for tomorrow."
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.
webcal-mcp
A small read-only Model Context Protocol server
that exposes one or more remote iCalendar feeds (the webcal:// or .ics kind)
as queryable tools for an LLM agent.
Install
pipx install webcal-mcpOr from a checkout:
pipx install .This puts a webcal-mcp script on your PATH. Python 3.10 or later is required.
Configure
Create ~/.config/webcal-mcp/config.toml (or point WEBCAL_MCP_CONFIG at any
other path). See config.example.toml:
default_ttl_seconds = 900
[calendars.personal]
url = "webcal://example.com/personal.ics"
description = "Personal calendar"
[calendars.work]
url = "https://example.com/work.ics"
description = "Work calendar"webcal:// and webcals:// URLs are normalized to https://.
Local calendars via EventKit (macOS)
On macOS, any calendar already set up in Calendar.app — iCloud, local,
subscribed .ics, CalDAV, Google — can be read directly through Apple's
EventKit framework. No webcal:// URL hunting required:
[calendars.personal]
source = "eventkit"
identifier = "Personal" # display name from Calendar.app, or its UUID
description = "iCloud personal calendar"identifier matches the calendar's display name first, then falls back
to its UUID. Run webcal-mcp list-eventkit to see what's available
(this dumps title uuid [source] for every calendar).
First use triggers a one-time TCC prompt for Calendar access; the grant
is bound to the binary that invokes EventKit (the Python interpreter
behind webcal-mcp), so re-granting may be needed if you reinstall.
The PyObjC dependency installs automatically on macOS only.
Run
webcal-mcpThe server speaks MCP over stdio. Wire it into an MCP-aware client (Claude
Desktop, Claude Code, etc.) by pointing at the webcal-mcp script. For
example, for Claude Code:
claude mcp add webcal -- webcal-mcpTools
Tool | Purpose |
| Names, descriptions, capability flags for the configured calendars. |
| Events in a date range, with optional |
| All events occurring on a given date. |
| Full record for a single UID. |
Recurring events are expanded within the requested window. Responses are
cached in memory with a per-calendar TTL; revalidation uses HTTP ETag and
Last-Modified.
Read-only
Calendars are read-only today. The CalendarSource abstraction reserves a
writable capability flag so future write-capable backends can be added
without changing the tool surface.
This 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.
Latest Blog Posts
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/mnot/webcal-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server