kelly
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., "@kellyWhat events do I have today?"
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.
kelly
Your calendar in Claude's context — a local MCP server for CalDAV.
Status: working prototype
What it does
Kelly gives Claude read access to your CalDAV calendar so it can help you plan your day, check for conflicts, summarize your week, or answer questions about your schedule — without you copy-pasting events.
Runs locally on your machine — credentials never leave your device
Stores credentials securely in macOS Keychain
Read-only — Kelly can't create, modify, or delete events
Related MCP server: calendar-mcp
Architecture
┌─────────────────────────────────────────────────────┐
│ Your machine │
│ │
│ ┌──────────────┐ stdio ┌──────────────────┐ │
│ │ Claude │◄─────────►│ kelly │ │
│ │ Desktop/Code │ │ (MCP server) │ │
│ └──────────────┘ └────────┬─────────┘ │
│ │ │
│ macOS Keychain │
│ (credentials) │
└──────────────────────────────┼──────────────────────┘
│ HTTPS (Digest auth)
▼
┌───────────────────┐
│ CalDAV server │
│ (Pixel/SabreDAV) │
└───────────────────┘Quick Start
Prerequisites
Python 3.10+
uv (Python package manager)
Install
git clone <this-repo>
cd kelly
uv syncStore credentials
kelly setupYou'll be prompted for your CalDAV principal URL, username, and password. These are stored in macOS Keychain — not in any file.
Add to Claude Desktop
Add this to your Claude Desktop MCP config (~/Library/Application Support/Claude/claude_desktop_config.json):
{
"mcpServers": {
"kelly": {
"command": "uv",
"args": ["run", "--directory", "/path/to/kelly", "kelly", "serve"]
}
}
}Add to Claude Code
claude mcp add kelly -- uv run --directory /path/to/kelly kelly serveVerify
Ask Claude: "Check my calendar connection" — it should call the check_connection tool and report success.
Available Tools
Tool | Description |
| Verify CalDAV credentials and server connectivity |
| List available calendars under your principal |
| Fetch events for the next N days, optionally filtered by calendar name |
Security Model
Aspect | Detail |
Credential storage | macOS Keychain (primary), env vars (fallback for CI/Docker) |
Transport | stdio only — no network listener, no exposed ports |
Scope | Read-only — no calendar mutations possible |
Network | Outbound HTTPS to your CalDAV server only |
Dependencies | Minimal: requests, icalendar, fastmcp, keyring |
Environment variable fallback
If you can't use Keychain (CI, Docker, Linux), set these instead:
export CALDAV_PRINCIPAL_URL="https://caldav.example.com/principals/you/"
export CALDAV_USER="your-username"
export CALDAV_PASS="your-password"Development
Run tests
uv run pytestProject structure
kelly/
├── __init__.py # Package version
├── cli.py # CLI: kelly setup | kelly serve
├── server.py # FastMCP server + tool definitions
├── caldav.py # CalDAV protocol (PROPFIND, REPORT, iCal parsing)
└── credentials.py # Keychain/env credential loading
tests/
├── test_caldav.py # CalDAV logic tests (mocked HTTP)
├── test_server.py # MCP tool tests
└── test_credentials.py # Credential fallback testsThis 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.
Related MCP Connectors
MCP server for Cronofy — read calendars, events and free/busy, and create, update or delete events.
Hosted Google Calendar MCP server for AI agents. No self-hosting or Google Cloud setup.
A MCP server that works with Google Calendar to manage event listing, reading, and updates.
- QuietaOAuthapp.getquieta
Family calendar MCP server: read the family's week and propose changes a parent approves.
Related MCP Servers
- FlicenseNot gradedqualityDmaintenanceAn MCP server that lets Claude create calendar events and tasks in Nextcloud via CalDAV.-
- AlicenseAqualityCmaintenanceMCP server that gives Claude and other MCP hosts full access to Calendar.app on macOS — list, search, create, update, and delete events across all configured accounts.7181MIT
- AlicenseNot gradedqualityCmaintenanceA Model Context Protocol (MCP) server that allows Claude and other MCP clients to interact with Google Calendar. This server enables AI assistants to manage your calendar events, check availability, and handle scheduling tasks.MIT
- AlicenseAqualityAmaintenanceA macOS-only MCP server that lets Claude read and create events in Apple Calendar, list calendars, and find free time using EventKit.678MIT