caldav-based calendar event creation and management
Creates, updates, and deletes calendar events through CalDAV protocol integration with Nextcloud servers. Implements RFC 4791 CalDAV specification to directly manipulate iCalendar (ICS) objects on the Nextcloud backend, enabling atomic event operations with full property support (title, description, start/end times, recurrence rules, attendees). Uses HTTP-based WebDAV operations (PUT/DELETE) to persist changes directly to the calendar collection on the server.
Unique: Direct CalDAV protocol implementation via MCP (Model Context Protocol) rather than REST wrapper, enabling LLM agents to manipulate calendars as first-class MCP resources with native iCalendar semantics
vs alternatives: Provides deeper calendar control than Google Calendar or Outlook APIs by exposing raw CalDAV operations, while maintaining Nextcloud's self-hosted privacy model without cloud vendor lock-in
calendar and calendar collection enumeration
Lists all calendars available to the authenticated user by querying the CalDAV PROPFIND method on the principal collection. Retrieves calendar metadata including display names, colors, descriptions, and access control properties (read-only vs read-write). Parses XML responses from the CalDAV server to construct a structured inventory of available calendar collections.
Unique: Uses CalDAV PROPFIND with DAV:resourcetype and CALDAV:calendar-description properties to enumerate calendars with full metadata in a single round-trip, rather than iterating through REST endpoints
vs alternatives: More efficient than polling individual calendar endpoints because PROPFIND returns all calendar metadata atomically, reducing network overhead compared to sequential REST API calls
event query and retrieval with filtering
Retrieves events from a calendar using CalDAV REPORT method with CALDAV:calendar-query filters. Supports filtering by date range (DTSTART/DTEND), event properties (summary, description), and recurrence expansion. Parses iCalendar (ICS) responses to construct structured event objects with full property access. Handles recurring events by expanding instances within the requested time window.
Unique: Implements CalDAV REPORT with calendar-query to filter events server-side before transmission, reducing bandwidth and processing overhead compared to fetching all events and filtering client-side
vs alternatives: More efficient than REST-based calendar APIs because server-side filtering reduces payload size and network round-trips, especially for calendars with hundreds of events
attendee management and invitation handling
Manages event attendees by manipulating ATTENDEE properties in iCalendar objects. Adds, removes, or modifies attendee entries with role (REQ-PARTICIPANT, OPT-PARTICIPANT), participation status (NEEDS-ACTION, ACCEPTED, DECLINED), and RSVP flags. Updates the event's ORGANIZER property and sends invitations through the Nextcloud Calendar app's notification system. Handles attendee responses by updating PARTSTAT (participation status) in the event record.
Unique: Directly manipulates iCalendar ATTENDEE and ORGANIZER properties via CalDAV PUT operations, enabling programmatic attendee management without relying on email-based invitation workflows
vs alternatives: Provides atomic attendee updates compared to email-based invitation systems, which are asynchronous and unreliable; integrates directly with Nextcloud's notification system for immediate feedback
event property editing with icalendar semantics
Modifies individual event properties (title, description, location, start/end times, categories, alarms) by parsing and updating iCalendar (RFC 5545) objects. Preserves existing properties while updating specified fields, maintaining iCalendar validity and server-side constraints. Handles timezone-aware datetime conversions and validates property formats before submission. Uses CalDAV PUT to atomically replace the entire event object with updated properties.
Unique: Implements full iCalendar RFC 5545 property semantics including timezone handling, recurrence rules, and alarm definitions, rather than exposing only a simplified event model
vs alternatives: Supports more complex event properties (alarms, categories, custom X-properties) than simplified REST APIs, enabling richer calendar applications at the cost of higher implementation complexity
mcp tool registration and schema-based function calling
Registers calendar operations as MCP (Model Context Protocol) tools with JSON Schema definitions, enabling LLM agents to invoke calendar functions through a standardized interface. Each tool (create event, list calendars, query events, etc.) is defined with input schema, output schema, and natural language descriptions. The MCP server translates tool invocations from the LLM into CalDAV operations, handling parameter validation and error mapping back to the agent.
Unique: Implements MCP protocol for calendar operations, providing LLM agents with a standardized tool interface that abstracts CalDAV complexity and enables multi-step calendar workflows through agent reasoning
vs alternatives: Enables LLM agents to use calendars as first-class tools (like Claude's native tool use) rather than requiring custom API wrappers, improving agent reasoning and reducing hallucination about calendar operations
authentication and credential management for caldav
Manages authentication to Nextcloud CalDAV servers using HTTP Basic Auth or Nextcloud app tokens. Stores and retrieves credentials securely (or as plaintext if not configured), constructs Authorization headers for CalDAV requests, and handles authentication failures with appropriate error messages. Supports both username/password and token-based authentication schemes compatible with Nextcloud's authentication system.
Unique: Implements CalDAV-compatible authentication (HTTP Basic Auth) with support for Nextcloud app tokens, enabling secure multi-user access without exposing user passwords to the MCP server
vs alternatives: Supports app tokens (Nextcloud-specific) in addition to basic auth, providing better security than password-only authentication while remaining simpler than OAuth2 implementations
timezone-aware datetime handling and conversion
Converts between local, UTC, and iCalendar TZID-based datetime representations. Parses DTSTART/DTEND properties with timezone identifiers (e.g., TZID=America/New_York), converts to UTC for storage, and reconstructs timezone-aware datetimes for display. Handles daylight saving time transitions and validates timezone identifiers against the system or Nextcloud server's timezone database.
Unique: Implements full iCalendar timezone semantics (TZID properties, VTIMEZONE components) rather than simplifying to UTC-only, enabling accurate representation of events in their original timezones
vs alternatives: Preserves timezone information in iCalendar format, preventing ambiguity when events are shared across systems, unlike simplified APIs that convert everything to UTC and lose timezone context
+1 more capabilities