Skip to main content

MCP server exposing a remote iCalendar (webcal) feed as queryable read-only tools

Project description

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-mcp

Or 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://.

Run

webcal-mcp

The 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-mcp

Tools

Tool Purpose
list_calendars Names, descriptions, capability flags for the configured calendars.
list_events Events in a date range, with optional query, categories, location filters and brief / full / markdown detail modes. Either bound may be omitted for open-ended windows.
events_on All events occurring on a given date.
get_event 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.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

webcal_mcp-0.1.1.tar.gz (13.0 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

webcal_mcp-0.1.1-py3-none-any.whl (12.3 kB view details)

Uploaded Python 3

File details

Details for the file webcal_mcp-0.1.1.tar.gz.

File metadata

  • Download URL: webcal_mcp-0.1.1.tar.gz
  • Upload date:
  • Size: 13.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for webcal_mcp-0.1.1.tar.gz
Algorithm Hash digest
SHA256 e244599c7ee01f693bc8d855696834fdbe89aeaf88e10a885ecd410b4395b5ea
MD5 8b6a9b7d0c3cdf023af3e731fc148fca
BLAKE2b-256 7754bf9b372a22508d2b23ea7e26fe627191bc1ca12ad586e2e455001553dd02

See more details on using hashes here.

Provenance

The following attestation bundles were made for webcal_mcp-0.1.1.tar.gz:

Publisher: publish.yml on mnot/webcal-mcp

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file webcal_mcp-0.1.1-py3-none-any.whl.

File metadata

  • Download URL: webcal_mcp-0.1.1-py3-none-any.whl
  • Upload date:
  • Size: 12.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for webcal_mcp-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 28e8fae88f6cc9934020abfc0f28ffe2e97145f363c5edf25b4c407431cbe4d6
MD5 f03a201d18da62906c28d190ada8492d
BLAKE2b-256 68ff97db80d2091d80b8f9e042c637c075fc1daac14275dd42deacd23f0ddda2

See more details on using hashes here.

Provenance

The following attestation bundles were made for webcal_mcp-0.1.1-py3-none-any.whl:

Publisher: publish.yml on mnot/webcal-mcp

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page