Skip to main content

calendar-mcp

Provider-agnostic CalDAV calendar MCP server for AI assistants. Connect any CalDAV calendar to Claude Desktop, Cursor, VS Code, or any MCP-compatible client.

Features

  • 10 calendar tools: list_calendars, get_events, get_event, today, upcoming, search_events, free_busy, create_event, update_event, delete_event
  • Provider auto-detection: Automatically configures Google, Apple iCloud, Nextcloud, Fastmail from your CalDAV URL
  • Any CalDAV server: Works with Radicale, Baikal, ownCloud, or any standard CalDAV provider
  • Read-only mode: Optional safety mode that disables all write operations
  • Zero external dependencies: Pure Python stdlib for CalDAV/iCal (only mcp SDK required)
  • RFC 5545 compliant: Proper iCalendar parsing with recurrence rules, durations, timezones, attendees

Quick Start

pip install calendar-mcp

Configuration

Set three environment variables:

export CALENDAR_MCP_URL="https://caldav.icloud.com/"
export CALENDAR_MCP_USERNAME="you@icloud.com"
export CALENDAR_MCP_PASSWORD="your-app-password"

All Environment Variables

Variable Required Default Description
CALENDAR_MCP_URL Yes — CalDAV server URL
CALENDAR_MCP_USERNAME Yes — Username (usually email)
CALENDAR_MCP_PASSWORD Yes — Password or app-specific password
CALENDAR_MCP_PROVIDER No Auto-detected Force provider: google, apple, nextcloud, fastmail, generic
CALENDAR_MCP_CALENDAR_ID No First calendar Default calendar name
CALENDAR_MCP_READ_ONLY No false Set to true to disable write operations
CALENDAR_MCP_TIMEZONE No UTC Default timezone

Provider Auto-Detection

URL Pattern Provider Default CalDAV URL
googleusercontent.com google https://apidata.googleusercontent.com/caldav/v2/
caldav.icloud.com apple https://caldav.icloud.com/
office365.com outlook https://outlook.office365.com/caldav/v2/
caldav.fastmail.com fastmail https://caldav.fastmail.com/dav/calendars/user/{email}/
nextcloud, owncloud nextcloud (your server URL)
anything else generic (your server URL)

Client Configuration

Claude Desktop

{
  "mcpServers": {
    "calendar": {
      "command": "calendar-mcp",
      "env": {
        "CALENDAR_MCP_URL": "https://caldav.icloud.com/",
        "CALENDAR_MCP_USERNAME": "you@icloud.com",
        "CALENDAR_MCP_PASSWORD": "your-app-password"
      }
    }
  }
}

Claude Code

claude mcp add -e CALENDAR_MCP_URL=https://caldav.icloud.com/ -e CALENDAR_MCP_USERNAME=you@icloud.com -e CALENDAR_MCP_PASSWORD=your-app-password calendar calendar-mcp

Tools

Tool Description Write?
list_calendars List all calendars on the account No
get_events Get events in a date range (configurable days ahead/back) No
get_event Get a single event by UID No
today Get all events for today No
upcoming Get events in the next N hours No
search_events Search by text in title, description, location No
free_busy Free/busy summary with total hours No
create_event Create a new event Yes
update_event Update an existing event (partial updates) Yes
delete_event Delete an event by UID Yes

Write tools are disabled when CALENDAR_MCP_READ_ONLY=true.

License

Dual-licensed:

Metadata

Release files for calendar-mcp 1.0.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for calendar-mcp 1.0.0
File Size Uploaded
calendar_mcp-1.0.0.tar.gz 33.2 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for calendar-mcp 1.0.0
File Interpreter ABI Platform
calendar_mcp-1.0.0-py3-none-any.whl Python 3 none any Details

Total release size: 66.1 kB

Release files / calendar_mcp-1.0.0.tar.gz

Download URL calendar_mcp-1.0.0.tar.gz
Size 33.2 kB
Tags Source
SHA-256 checksum
How to use checksums
7d10cda5830ac1093297c944cfdd39105c33e6f537e2ffa2137a09abdce38431
BLAKE2b-256 checksum
How to use checksums
f87a0fab26376aa0ec68b3a9b0fd53dfa6b3d0d848989c0e73677c09ff674732
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.11.13

Release files / calendar_mcp-1.0.0-py3-none-any.whl

Download URL calendar_mcp-1.0.0-py3-none-any.whl
Size 32.9 kB
Tags Python 3
SHA-256 checksum
How to use checksums
5209be4dd87b29889dc07954e1bdc49d28e7f034d68c6ff6ce58b4cb702851d4
BLAKE2b-256 checksum
How to use checksums
0c88ba359b3f7a98a3254bab8e6d7a8c3aed1bbe45fb75b4768cbdedee1be964
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.11.13

Release history Release notifications | RSS feed

This release

1.0.0 This release

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page