
A Go-based MCP server for Apple iCloud Calendar via CalDAV — manage calendars and events through AI assistants with cross-platform support.
概览
A Model Context Protocol server that gives AI assistants full access to Apple iCloud Calendar through CalDAV. List calendars, search events, create, update, and delete events -- all from Claude or any MCP-compatible client. Built with Go and the mcp-go SDK. Ships as a single static binary for Linux, macOS, and Windows. - List all iCloud calendars with paths, names, descriptions, and colors - Search events with date range filters and pagination - Create events with title, time, description, location, and attendees - Update individual fields on existing events (partial update with pointer fields) - Delete events permanently - Expand recurring events (RRULE) into individual occurrences within a date range - Manage attendees with roles (CHAIR, REQ-PARTICIPANT, OPT-PARTICIPANT) and statuses - Manage multiple iCloud accounts from a single server instance - Configure via ACCOUNTS_FILE JSON or single-account environment variables - Per-account rate limiting and retry logic - Structured...
README
以下为原文 README 节选,完整内容请查看原文。
iCloud Calendar MCP Server
A Model Context Protocol server that gives AI assistants full access to Apple iCloud Calendar through CalDAV. List calendars, search events, create, update, and delete events – all from Claude or any MCP-compatible client.
Built with Go and the mcp-go SDK. Ships as a single static binary for Linux, macOS, and Windows.
Table of Contents
- Features
- Quick Start
- Prerequisites
- Installation
- Configuration
- Usage with Claude Desktop
- Available Tools
- Development
- Architecture
- Security
- Troubleshooting
- Contributing
- License
Features
Calendar Operations
- List all iCloud calendars with paths, names, descriptions, and colors
- Search events with date range filters and pagination
- Create events with title, time, description, location, and attendees
- Update individual fields on existing events (partial update with pointer fields)
- Delete events permanently
Recurring Events & Attendees
- Expand recurring events (RRULE) into individual occurrences within a date range
- Manage attendees with roles (CHAIR, REQ-PARTICIPANT, OPT-PARTICIPANT) and statuses
Multi-Account Support
- Manage multiple iCloud accounts from a single server instance
- Configure via
ACCOUNTS_FILEJSON or single-account environment variables - Per-account rate limiting and retry logic
Operational
- Structured JSON logging with UUID request correlation
- Configurable timeout middleware on every tool call (default 25s)
- Automatic retry with exponential backoff for transient failures
- Rate limiting per account to avoid iCloud throttling
- Health endpoint (
/healthz,/readyz) and Prometheus metrics (/metrics) - Audit logging for mutating operations (no PII)
- Input validation for all tool parameters
- MCP tool annotations (read-only, destructive, idempotent) for client-side safety
- Graceful shutdown on SIGTERM/SIGINT
- mTLS and custom CA support for enterprise deployments
file://credential loading for Docker/Kubernetes secrets- CI pipeline with tests, linting, and vulnerability scanning
Quick Start
# Install
go install github.com/rgabriel/mcp-icloud-calendar@latest
# Set credentials (app-specific password, not your main iCloud password)
export ICLOUD_EMAIL="[email protected]"
export ICLOUD_PASSWORD="xxxx-xxxx-xxxx-xxxx"
# Run
mcp-icloud-calendar
Or download a prebuilt binary from the Releases page.
Prerequisites
- Go 1.21+ – install (only needed when building from source)
- iCloud account with two-factor authentication enabled
- App-specific password – required for CalDAV access
安装
docker run \配置
{
"mcpServers": {
"icloud-calendar": {
"command": "/path/to/mcp-icloud-calendar",
"env": {
"ICLOUD_EMAIL": "[email protected]",
"ICLOUD_PASSWORD": "xxxx-xxxx-xxxx-xxxx"
}
}
}
}