Cal
MCP server for calendars via CalDAV β CRUD events, free/busy, multi-provider
Ask AI about Cal
Powered by Claude Β· Grounded in docs
I know everything about Cal. Ask me about installation, configuration, usage, or troubleshooting.
0/500
Reviews
Documentation
PIM Agents
AI agent tooling for email (IMAP/SMTP), calendar (CalDAV), and contacts (CardDAV). Three independent MCP servers built on open protocols.
Packages
| Package | Description | Install |
|---|---|---|
| @miguelarios/email-mcp | Email via IMAP/SMTP | npx @miguelarios/email-mcp |
| @miguelarios/cal-mcp | Calendars via CalDAV | npx @miguelarios/cal-mcp |
| @miguelarios/card-mcp | Contacts via CardDAV | npx @miguelarios/card-mcp |
Tools
Email (12 tools)
| Tool | Description |
|---|---|
search_emails | Search and filter emails by folder, sender, subject, date, flags |
get_email | Fetch full email by UID β headers, body, attachment metadata |
send_email | Compose and send via SMTP, reply with threading, or save as draft |
send_draft | Send an existing draft from the Drafts folder |
move_email | Move emails between folders |
mark_email | Set/unset flags (read, unread, flagged) |
delete_email | Move to trash or permanently delete |
list_folders | List all IMAP folders with special-use flags |
create_folder | Create an IMAP folder |
download_attachment | Download attachment by email UID and part ID |
get_email_raw | Export email as raw .eml |
get_folder_status | Get total and unread message counts for a folder |
Calendar (11 tools)
| Tool | Description |
|---|---|
list_calendars | Discover calendars across all configured providers |
list_events | Query events by date range with recurrence expansion |
get_today_events | Get all events for today |
search_events | Keyword search across title, description, and location |
get_event | Get full event details by UID |
create_event | Create event with attendees, alarms, categories |
update_event | Update event by UID, including single recurrence instances |
delete_event | Delete event by UID or single recurrence instance |
create_events_batch | Create multiple events at once |
import_ics | Import events from .ics content |
find_free_slots | Find available time slots across calendars |
Contacts (6 tools)
| Tool | Description |
|---|---|
list_contacts | List and search contacts by name, email, phone, org |
get_contact | Get full contact details by UID |
create_contact | Create a new contact with typed fields |
update_contact | Update an existing contact (merge-based) |
delete_contact | Delete a contact by UID |
resolve_contact | Given a name, return email address |
Configuration
Add the servers to your MCP client config (Claude Desktop, Claude Code, etc.). Credentials are passed via environment variables.
{
"mcpServers": {
"email": {
"command": "npx",
"args": ["-y", "@miguelarios/email-mcp"],
"env": {
"IMAP_HOST": "imap.example.com",
"IMAP_USER": "user@example.com",
"IMAP_PASS": "your-app-password",
"SMTP_HOST": "smtp.example.com",
"SMTP_USER": "user@example.com",
"SMTP_PASS": "your-app-password"
}
}
}
}
Optional email env vars: IMAP_PORT (default 993), IMAP_SECURE (default true), SMTP_PORT (default 465), SMTP_SECURE (default true), SMTP_FROM_NAME.
Calendar
{
"mcpServers": {
"calendar": {
"command": "npx",
"args": ["-y", "@miguelarios/cal-mcp"],
"env": {
"CALDAV_MAILBOX_URL": "https://dav.mailbox.org/caldav/",
"CALDAV_MAILBOX_USER": "user@mailbox.org",
"CALDAV_MAILBOX_PASS": "app-password"
}
}
}
}
Add multiple providers by using different IDs: CALDAV_NEXTCLOUD_URL, CALDAV_NEXTCLOUD_USER, CALDAV_NEXTCLOUD_PASS, etc.
Contacts
{
"mcpServers": {
"contacts": {
"command": "npx",
"args": ["-y", "@miguelarios/card-mcp"],
"env": {
"CARDDAV_URL": "https://dav.example.com/carddav/",
"CARDDAV_USER": "user@example.com",
"CARDDAV_PASS": "your-app-password"
}
}
}
}
All three together
{
"mcpServers": {
"email": {
"command": "npx",
"args": ["-y", "@miguelarios/email-mcp"],
"env": {
"IMAP_HOST": "imap.example.com",
"IMAP_USER": "user@example.com",
"IMAP_PASS": "your-app-password",
"SMTP_HOST": "smtp.example.com",
"SMTP_USER": "user@example.com",
"SMTP_PASS": "your-app-password"
}
},
"calendar": {
"command": "npx",
"args": ["-y", "@miguelarios/cal-mcp"],
"env": {
"CALDAV_MAILBOX_URL": "https://dav.mailbox.org/caldav/",
"CALDAV_MAILBOX_USER": "user@mailbox.org",
"CALDAV_MAILBOX_PASS": "app-password"
}
},
"contacts": {
"command": "npx",
"args": ["-y", "@miguelarios/card-mcp"],
"env": {
"CARDDAV_URL": "https://dav.example.com/carddav/",
"CARDDAV_USER": "user@example.com",
"CARDDAV_PASS": "your-app-password"
}
}
}
}
License
MIT
