CalDAV MCP
MCP ServerFree** - A CalDAV MCP server to expose calendar operations as tools for AI assistants.
Capabilities10 decomposed
stdio-based mcp server initialization with caldav authentication
Medium confidenceInitializes a Model Context Protocol server that communicates with AI assistants via StdioServerTransport over stdin/stdout, authenticating to CalDAV servers using environment variable credentials. The server registers tool handlers using @modelcontextprotocol/sdk and validates all incoming requests through Zod schemas before delegating to the underlying CalDAVClient, ensuring type-safe message serialization/deserialization across the MCP protocol boundary.
Uses @modelcontextprotocol/sdk's StdioServerTransport for direct stdin/stdout communication with AI assistants, avoiding HTTP overhead and enabling tight integration with Claude's native MCP support. Validates all tool inputs with Zod schemas before CalDAV delegation, providing type safety at the protocol boundary.
Simpler deployment than REST-based calendar APIs because it eliminates HTTP server setup and uses MCP's standardized protocol, enabling direct integration with Claude without custom client code.
calendar enumeration with metadata extraction
Medium confidenceExposes a list-calendars tool that queries the CalDAV server via ts-caldav's getCalendars() method, returning structured metadata for each calendar including display name, color, and calendar-specific properties. The tool validates no input parameters and returns a JSON array of calendar objects, enabling AI assistants to discover available calendars before performing event operations.
Directly wraps ts-caldav's getCalendars() method without caching or filtering, providing real-time calendar discovery. Zod schema validation ensures consistent output structure across CalDAV server implementations.
More reliable than parsing calendar URLs manually because it uses the CalDAV protocol's standard PROPFIND discovery mechanism, handling server-specific variations automatically.
event querying with date range filtering
Medium confidenceImplements a list-events tool that queries the CalDAV server for events within a specified date range using ts-caldav's getEvents() method. Accepts startDate and endDate parameters (ISO 8601 format), validates them with Zod schemas, and returns a structured JSON array of event objects including title, start/end times, description, and recurrence rules. Enables AI assistants to check calendar availability and retrieve event details for scheduling decisions.
Uses ts-caldav's getEvents() with CalDAV REPORT requests for server-side date filtering, reducing payload size compared to fetching all events and filtering client-side. Zod validates ISO 8601 date strings before passing to CalDAV client.
More efficient than REST APIs that require fetching all events because CalDAV's REPORT method performs server-side filtering, reducing bandwidth and latency for large calendars.
event creation with recurrence and validation
Medium confidenceExposes a create-event tool that constructs new calendar events with title, start/end times, description, and optional recurrence rules (RRULE format). Validates all inputs using Zod schemas (date format, string length, RRULE syntax), then delegates to ts-caldav's createEvent() method which generates iCalendar (ICS) format and POSTs to the CalDAV server. Returns the created event's unique identifier (UID) and confirmation details, enabling AI assistants to schedule events with full iCalendar feature support.
Leverages ts-caldav's iCalendar (ICS) generation to support full RFC 5545 features including RRULE recurrence, avoiding custom event serialization. Zod schemas validate RRULE syntax and date ordering before CalDAV delegation, catching invalid inputs early.
More feature-rich than simple REST event creation because it supports iCalendar's native recurrence rules (RRULE), enabling complex scheduling patterns without custom logic.
event deletion with uid-based targeting
Medium confidenceImplements a delete-event tool that removes calendar events by their unique identifier (UID). Accepts a single UID parameter, validates it with Zod schemas, and delegates to ts-caldav's deleteEvent() method which sends a DELETE request to the CalDAV server. Returns confirmation of deletion, enabling AI assistants to cancel or remove events from calendars with precise targeting.
Uses CalDAV's DELETE method with UID targeting, providing atomic event removal without requiring event re-fetching. Zod validates UID format before delegation, preventing malformed requests.
More reliable than REST APIs that require event re-fetching before deletion because CalDAV's UID-based DELETE is idempotent and doesn't require state synchronization.
zod-based input validation at mcp protocol boundary
Medium confidenceImplements runtime validation of all tool inputs using Zod schemas before delegating to CalDAVClient methods. Each tool (list-calendars, list-events, create-event, delete-event) has a corresponding Zod schema that validates parameter types, string lengths, date formats (ISO 8601), and RRULE syntax. Validation errors are caught and returned as structured MCP error responses, preventing invalid requests from reaching the CalDAV server and providing clear error messages to AI assistants.
Centralizes input validation at the MCP protocol boundary using Zod schemas, catching errors before CalDAV delegation. Provides structured validation errors that MCP clients can parse and present to users.
More maintainable than ad-hoc validation because Zod schemas are declarative and reusable, reducing validation code duplication across tools.
caldav protocol abstraction via ts-caldav client
Medium confidenceAbstracts CalDAV protocol complexity by delegating all calendar operations to the ts-caldav library, which handles HTTP/CalDAV request construction, XML parsing, and iCalendar serialization. The MCP server registers tool handlers that call ts-caldav methods (getCalendars, getEvents, createEvent, deleteEvent), which internally manage PROPFIND/REPORT/PUT/DELETE requests, authentication headers, and response parsing. This abstraction eliminates the need for the MCP server to understand CalDAV protocol details.
Delegates all CalDAV protocol handling to ts-caldav, eliminating custom HTTP/XML code. The MCP server focuses purely on tool registration and input validation, keeping concerns separated.
Simpler than implementing CalDAV protocol directly because ts-caldav handles PROPFIND/REPORT/PUT/DELETE request construction, XML parsing, and iCalendar serialization automatically.
environment variable-based credential management
Medium confidenceLoads CalDAV server credentials (URL, username, password) from environment variables at server startup, avoiding hardcoded secrets in source code. The server reads CALDAV_URL, CALDAV_USERNAME, and CALDAV_PASSWORD from the process environment and passes them to the ts-caldav client initialization. This pattern enables secure deployment in containerized environments (Docker, Kubernetes) where secrets are injected at runtime.
Uses environment variables for credential injection, enabling secure deployment patterns in containerized environments without code changes. Credentials are loaded at startup and passed to ts-caldav client.
More secure than hardcoded credentials and simpler than OAuth2 flows, making it ideal for internal automation and containerized deployments.
mcp tool handler registration with schema-based dispatch
Medium confidenceRegisters four calendar operation tools with the MCP server using @modelcontextprotocol/sdk's setRequestHandler() method, mapping tool names (list-calendars, list-events, create-event, delete-event) to handler functions. Each handler receives tool name and arguments, validates arguments against Zod schemas, and delegates to the corresponding ts-caldav method. The MCP server routes incoming tool invocations to the correct handler based on tool name, enabling AI assistants to call tools by name with structured parameters.
Uses @modelcontextprotocol/sdk's setRequestHandler() for declarative tool registration, centralizing all tool logic in handler functions. Tool names and schemas are registered once at startup, enabling efficient dispatch.
More maintainable than custom tool routing because MCP's setRequestHandler() provides standardized tool invocation semantics and error handling.
structured json response formatting for mcp protocol
Medium confidenceFormats all tool responses as structured JSON objects following the MCP protocol specification, with content arrays containing text or error messages. Success responses include relevant data (calendar list, event details, created event UID), while error responses include error messages and validation details. This structured format enables AI assistants to parse responses reliably and present results to users or use them in downstream logic.
Uses MCP's ToolResult type for consistent response formatting across all tools, ensuring AI assistants can parse responses reliably without tool-specific parsing logic.
More reliable than custom response formats because MCP's ToolResult type is standardized across all MCP servers, enabling consistent client-side handling.
Capabilities are decomposed by AI analysis. Each maps to specific user intents and improves with match feedback.
Related Artifactssharing capabilities
Artifacts that share capabilities with CalDAV MCP, ranked by overlap. Discovered automatically through the match graph.
Nextcloud Calendar
** - CalDAV Nectcloud calendar integration. Manage calendars, events, attendees, etc.
Danielpeter-99/calcom-mcp
** - MCP server for [Calcom](https://cal.com/) (Also known as [Cal.com](https://cal.com/)). Manage event types, create bookings, and access Cal.com scheduling data through LLMs.
keeper.sh
Calendar sync tool & universal calendar MCP server. Aggregate, sync and control calendars on Google, Outlook, Office 365, iCloud, CalDAV or ICS.
@softeria/ms-365-mcp-server
A Model Context Protocol (MCP) server for interacting with Microsoft 365 and Office services through the Graph API
mcp-hello-world
A simple Hello World MCP server
@adisuryanathanael/mcp-server-filesystem2
MCP-compatible server tool for filesystem access from https://github.com/adisuryanathan/modelcontextprotocol-servers.git
Best For
- ✓AI assistant developers integrating calendar capabilities into Claude or other MCP-compatible models
- ✓Teams deploying calendar automation agents that need standardized protocol communication
- ✓AI assistants that need to present calendar choices to users before event creation
- ✓Calendar automation workflows that must enumerate targets before bulk operations
- ✓Scheduling assistants that need to check availability before creating events
- ✓Calendar analysis workflows that aggregate events across date ranges
- ✓AI agents that must respect existing commitments when planning
- ✓Scheduling assistants that create events based on natural language requests
Known Limitations
- ⚠Stdio transport only — no HTTP/REST endpoint exposure, requires direct process spawning
- ⚠Single CalDAV server per server instance — no multi-tenant support without running multiple processes
- ⚠Environment variable-based auth only — no support for OAuth2 or token refresh mechanisms
- ⚠No filtering or search — returns all calendars regardless of size or relevance
- ⚠Metadata limited to what CalDAV server exposes — some servers may not include color or description fields
- ⚠No pagination — large calendar lists returned as single response
Requirements
Input / Output
UnfragileRank
UnfragileRank is computed from adoption signals, documentation quality, ecosystem connectivity, match graph feedback, and freshness. No artifact can pay for a higher rank.
About
** - A CalDAV MCP server to expose calendar operations as tools for AI assistants.
Categories
Alternatives to CalDAV MCP
Are you the builder of CalDAV MCP?
Claim this artifact to get a verified badge, access match analytics, see which intents users search for, and manage your listing.
Get the weekly brief
New tools, rising stars, and what's actually worth your time. No spam.
Data Sources
Looking for something else?
Search →