Skip to main content

Provider-agnostic CalDAV calendar MCP server for AI assistants

Project description

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:

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

calendar_mcp-1.0.0.tar.gz (33.2 kB view details)

Uploaded Source

Built Distribution

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

calendar_mcp-1.0.0-py3-none-any.whl (32.9 kB view details)

Uploaded Python 3

File details

Details for the file calendar_mcp-1.0.0.tar.gz.

File metadata

  • Download URL: calendar_mcp-1.0.0.tar.gz
  • Upload date:
  • Size: 33.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.13

File hashes

Hashes for calendar_mcp-1.0.0.tar.gz
Algorithm Hash digest
SHA256 7d10cda5830ac1093297c944cfdd39105c33e6f537e2ffa2137a09abdce38431
MD5 1cee43687ce4204f7b7e657b48605298
BLAKE2b-256 f87a0fab26376aa0ec68b3a9b0fd53dfa6b3d0d848989c0e73677c09ff674732

See more details on using hashes here.

File details

Details for the file calendar_mcp-1.0.0-py3-none-any.whl.

File metadata

  • Download URL: calendar_mcp-1.0.0-py3-none-any.whl
  • Upload date:
  • Size: 32.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.13

File hashes

Hashes for calendar_mcp-1.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 5209be4dd87b29889dc07954e1bdc49d28e7f034d68c6ff6ce58b4cb702851d4
MD5 a64feec498ad4f18177c43ae745d4f93
BLAKE2b-256 0c88ba359b3f7a98a3254bab8e6d7a8c3aed1bbe45fb75b4768cbdedee1be964

See more details on using hashes here.

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