{"passport":{"unfragile":{"@version":"1.0","version":"2026-05","artifact":{"id":"awesome-nextcloud-calendar","slug":"nextcloud-calendar","name":"Nextcloud Calendar","type":"mcp","url":"https://github.com/Cheffromspace/mcp-nextcloud-calendar","page_url":"https://unfragile.ai/nextcloud-calendar","categories":["mcp-servers"],"tags":[],"pricing":{"model":"open_source","free":true,"starting_price":null},"status":"active","verified":false},"capabilities":[{"id":"awesome-nextcloud-calendar__cap_0","uri":"capability://tool.use.integration.caldav.based.calendar.event.creation.and.management","name":"caldav-based calendar event creation and management","description":"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.","intents":["Create calendar events programmatically with full iCalendar property support","Update existing events with new times, descriptions, or attendee lists","Delete events from Nextcloud calendars via API","Manage event recurrence patterns and exceptions"],"best_for":["AI agents and LLM applications needing calendar automation","Teams integrating Nextcloud calendars into workflow automation","Developers building calendar-aware scheduling systems"],"limitations":["Requires direct CalDAV server access — no support for OAuth2 delegation flows, only basic auth or token-based authentication","No built-in conflict detection — concurrent modifications may overwrite without warning","Recurrence rule (RRULE) parsing delegated to client — complex rules require manual iCalendar syntax","No timezone database bundled — relies on system or Nextcloud server timezone definitions"],"requires":["Nextcloud instance 20.0+ with Calendar app enabled","CalDAV endpoint URL (typically https://nextcloud.example.com/remote.php/dav/calendars/)","Valid Nextcloud user credentials (username/password or app token)","Network access to Nextcloud server"],"input_types":["structured event data (title, start, end, description, attendees)","iCalendar format (ICS) for complex properties","event identifiers (UID, calendar name)"],"output_types":["structured event objects with full properties","HTTP status codes indicating success/failure","iCalendar (ICS) format for export"],"categories":["tool-use-integration","automation-workflow"],"confidence":0.5,"matches":0,"success_rate":0},{"id":"awesome-nextcloud-calendar__cap_1","uri":"capability://search.retrieval.calendar.and.calendar.collection.enumeration","name":"calendar and calendar collection enumeration","description":"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.","intents":["Discover all calendars accessible to the current user","Determine which calendars are writable vs read-only","Retrieve calendar display names and color assignments for UI rendering","Identify shared or delegated calendars"],"best_for":["Multi-calendar applications needing to present user's full calendar inventory","Agents that must select target calendars dynamically based on availability","Calendar synchronization tools requiring discovery of all collections"],"limitations":["PROPFIND response parsing is XML-based — malformed server responses may cause parsing failures","No caching layer — each enumeration query hits the server, adding latency for frequent calls","Calendar color and display name are server-dependent — no normalization across different Nextcloud versions","Shared calendars appear only if explicitly shared with the authenticated user — no discovery of public calendars"],"requires":["Nextcloud instance with Calendar app enabled","Valid CalDAV authentication credentials","CalDAV principal URL accessible"],"input_types":["user credentials or authentication token","principal collection URL"],"output_types":["structured calendar list with metadata (name, color, access level)","calendar collection URLs (for use in subsequent operations)"],"categories":["search-retrieval","tool-use-integration"],"confidence":0.5,"matches":0,"success_rate":0},{"id":"awesome-nextcloud-calendar__cap_2","uri":"capability://search.retrieval.event.query.and.retrieval.with.filtering","name":"event query and retrieval with filtering","description":"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.","intents":["Fetch all events in a calendar for a specific date range","Search for events by title or description keywords","Retrieve upcoming events for the next N days","Expand recurring events into individual instances for a given period"],"best_for":["Scheduling agents that need to check availability before creating events","Calendar sync tools requiring efficient event retrieval","LLM applications needing to answer questions about calendar contents"],"limitations":["CALDAV:calendar-query filtering is limited to basic properties — complex boolean queries not supported","Recurrence expansion is server-dependent — some Nextcloud versions may not expand recurring events automatically","Large result sets (1000+ events) may timeout or cause memory issues on client side","No pagination support — all matching events returned in single response"],"requires":["Nextcloud Calendar app with CalDAV support","Valid CalDAV authentication","Calendar collection URL"],"input_types":["calendar collection URL","date range (start and end timestamps)","optional filter criteria (event properties)"],"output_types":["structured event list with full iCalendar properties","expanded recurring event instances","event UIDs for subsequent operations"],"categories":["search-retrieval","data-processing-analysis"],"confidence":0.5,"matches":0,"success_rate":0},{"id":"awesome-nextcloud-calendar__cap_3","uri":"capability://tool.use.integration.attendee.management.and.invitation.handling","name":"attendee management and invitation handling","description":"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.","intents":["Add attendees to existing events and send invitations","Remove attendees from events","Track attendee RSVP status (accepted, declined, tentative)","Update attendee roles (required vs optional participation)"],"best_for":["Meeting scheduling agents that need to invite participants","Calendar applications tracking RSVP responses","Workflow automation requiring attendee coordination"],"limitations":["Invitation delivery depends on Nextcloud's email configuration — no guarantee of delivery if mail server is misconfigured","PARTSTAT updates are manual — no automatic response tracking from external email clients","No support for attendee delegation (DELEGATED-TO property) — must be managed manually","Attendee email validation is minimal — invalid addresses accepted but invitations will fail silently"],"requires":["Nextcloud Calendar app with attendee support enabled","Valid CalDAV authentication with write access to calendar","Nextcloud mail server configured for sending invitations"],"input_types":["event UID","attendee email addresses","attendee roles and participation status","RSVP requirements"],"output_types":["updated event object with attendee list","invitation delivery status","attendee participation status updates"],"categories":["tool-use-integration","automation-workflow"],"confidence":0.5,"matches":0,"success_rate":0},{"id":"awesome-nextcloud-calendar__cap_4","uri":"capability://data.processing.analysis.event.property.editing.with.icalendar.semantics","name":"event property editing with icalendar semantics","description":"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.","intents":["Change event title, description, or location","Reschedule events to different times","Add or remove event alarms/reminders","Assign events to categories or tags"],"best_for":["Calendar editing tools and UIs","Agents that need to modify event details based on user requests","Workflow automation requiring event property updates"],"limitations":["No partial updates — entire event object must be re-submitted, risking race conditions if concurrent edits occur","Timezone handling is complex — requires accurate TZID references matching server's timezone database","Alarm (VALARM) syntax is strict — malformed alarm definitions will cause PUT failures","No validation of property constraints — server may reject updates that violate Nextcloud-specific rules"],"requires":["Nextcloud Calendar with CalDAV support","Valid authentication with write access","Event UID and calendar collection URL","Understanding of iCalendar property syntax"],"input_types":["event UID","property updates (title, description, datetime, location, etc.)","iCalendar format for complex properties"],"output_types":["updated event object with new properties","HTTP status indicating success/failure","validation errors if properties are malformed"],"categories":["data-processing-analysis","tool-use-integration"],"confidence":0.5,"matches":0,"success_rate":0},{"id":"awesome-nextcloud-calendar__cap_5","uri":"capability://tool.use.integration.mcp.tool.registration.and.schema.based.function.calling","name":"mcp tool registration and schema-based function calling","description":"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.","intents":["Enable LLM agents to manage calendars through natural language requests","Provide structured tool interface for calendar operations","Validate tool inputs before executing CalDAV operations","Return structured results that LLMs can reason about"],"best_for":["AI agents and LLM applications needing calendar automation","Multi-tool orchestration systems integrating calendar with other services","Developers building conversational calendar interfaces"],"limitations":["Schema validation is JSON Schema only — no runtime type checking beyond schema conformance","Tool invocation is synchronous — long-running operations (large event queries) may timeout","Error messages are mapped from CalDAV HTTP responses — may be cryptic for LLM interpretation","No built-in retry logic — transient network failures cause immediate tool failure"],"requires":["MCP client implementation (Claude, custom LLM agent framework)","Nextcloud instance with Calendar and CalDAV support","Valid authentication credentials","Node.js or Python runtime for MCP server"],"input_types":["JSON-formatted tool invocation parameters","natural language requests (processed by LLM into tool calls)"],"output_types":["structured JSON responses with operation results","error messages with CalDAV status codes","event data in structured format"],"categories":["tool-use-integration","planning-reasoning"],"confidence":0.5,"matches":0,"success_rate":0},{"id":"awesome-nextcloud-calendar__cap_6","uri":"capability://safety.moderation.authentication.and.credential.management.for.caldav","name":"authentication and credential management for caldav","description":"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.","intents":["Authenticate to Nextcloud servers without hardcoding credentials","Support multiple authentication methods (basic auth, app tokens)","Handle authentication errors and provide clear failure messages","Manage credential lifecycle (refresh, rotation)"],"best_for":["Production deployments requiring secure credential storage","Multi-user systems with per-user Nextcloud accounts","Agents running in untrusted environments"],"limitations":["No OAuth2 support — only HTTP Basic Auth and app tokens, limiting integration with modern auth flows","Credentials stored in environment variables or config files — no encryption at rest unless externally managed","No token refresh mechanism — app tokens must be manually rotated","No support for certificate-based authentication (mTLS) — only HTTP Basic Auth variants"],"requires":["Nextcloud username and password OR app token","Nextcloud server URL","Environment variables or config file for credential storage"],"input_types":["username and password","Nextcloud app token","server URL"],"output_types":["HTTP Authorization header","authentication success/failure status","error messages for invalid credentials"],"categories":["safety-moderation","tool-use-integration"],"confidence":0.5,"matches":0,"success_rate":0},{"id":"awesome-nextcloud-calendar__cap_7","uri":"capability://data.processing.analysis.timezone.aware.datetime.handling.and.conversion","name":"timezone-aware datetime handling and conversion","description":"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.","intents":["Create events with correct timezone information","Display event times in user's local timezone","Handle events spanning multiple timezones (e.g., international meetings)","Avoid double-booking due to timezone confusion"],"best_for":["Global teams with events across multiple timezones","Calendar applications requiring accurate time display","Scheduling agents that must respect timezone constraints"],"limitations":["Timezone database must match between client and Nextcloud server — mismatches cause time display errors","Daylight saving time transitions are complex — edge cases (e.g., events during DST changeover) may be handled incorrectly","No support for custom timezones — only standard IANA timezone identifiers","Timezone conversion is lossy — original timezone information may be lost if converted to UTC and back"],"requires":["System timezone database (tzdata on Linux, built-in on macOS/Windows)","Nextcloud server with matching timezone definitions","Datetime library with timezone support (Python datetime, JavaScript Date, etc.)"],"input_types":["datetime strings with timezone identifiers (TZID=America/New_York)","Unix timestamps (UTC)","local datetime with timezone context"],"output_types":["iCalendar DTSTART/DTEND with TZID","UTC timestamps","localized datetime strings for display"],"categories":["data-processing-analysis","tool-use-integration"],"confidence":0.5,"matches":0,"success_rate":0},{"id":"awesome-nextcloud-calendar__cap_8","uri":"capability://data.processing.analysis.recurrence.rule.parsing.and.expansion","name":"recurrence rule parsing and expansion","description":"Parses iCalendar RRULE (recurrence rule) syntax to understand recurring event patterns (daily, weekly, monthly, yearly with complex rules like 'every 2nd Tuesday'). Expands recurring events into individual instances within a specified date range, handling exceptions (EXDATE) and modifications (RECURRENCE-ID). Validates RRULE syntax and handles edge cases like leap years and month boundaries.","intents":["Expand recurring events into individual instances for calendar display","Check availability for recurring events","Modify individual instances of recurring events","Handle recurring event exceptions (e.g., skip one occurrence)"],"best_for":["Calendar applications displaying recurring events","Scheduling agents checking availability across recurring events","Calendar sync tools handling recurring event expansion"],"limitations":["Complex RRULE patterns (e.g., 'every 2nd Tuesday of months with 31 days') may be incorrectly expanded","Expansion is computationally expensive for long-running recurring events (e.g., daily for 10 years) — may timeout","No support for non-standard recurrence patterns — only RFC 5545 RRULE syntax","EXDATE and RECURRENCE-ID handling is manual — requires careful synchronization with server state"],"requires":["iCalendar RRULE string","start and end dates for expansion window","EXDATE and RECURRENCE-ID lists (if applicable)"],"input_types":["RRULE string (e.g., 'FREQ=WEEKLY;BYDAY=MO,WE,FR')","event start date","expansion date range"],"output_types":["list of expanded event instances with individual dates","exception dates (EXDATE)","modified instances (RECURRENCE-ID)"],"categories":["data-processing-analysis","planning-reasoning"],"confidence":0.5,"matches":0,"success_rate":0}],"trust":{"score":26,"verified":false,"data_access_risk":"high","permissions":["Nextcloud instance 20.0+ with Calendar app enabled","CalDAV endpoint URL (typically https://nextcloud.example.com/remote.php/dav/calendars/)","Valid Nextcloud user credentials (username/password or app token)","Network access to Nextcloud server","Nextcloud instance with Calendar app enabled","Valid CalDAV authentication credentials","CalDAV principal URL accessible","Nextcloud Calendar app with CalDAV support","Valid CalDAV authentication","Calendar collection URL"],"failure_modes":["Requires direct CalDAV server access — no support for OAuth2 delegation flows, only basic auth or token-based authentication","No built-in conflict detection — concurrent modifications may overwrite without warning","Recurrence rule (RRULE) parsing delegated to client — complex rules require manual iCalendar syntax","No timezone database bundled — relies on system or Nextcloud server timezone definitions","PROPFIND response parsing is XML-based — malformed server responses may cause parsing failures","No caching layer — each enumeration query hits the server, adding latency for frequent calls","Calendar color and display name are server-dependent — no normalization across different Nextcloud versions","Shared calendars appear only if explicitly shared with the authenticated user — no discovery of public calendars","CALDAV:calendar-query filtering is limited to basic properties — complex boolean queries not supported","Recurrence expansion is server-dependent — some Nextcloud versions may not expand recurring events automatically","builder identity is not verified yet","no observed match outcomes yet"],"rank_breakdown":{"adoption":0.05,"quality":0.28,"ecosystem":0.39999999999999997,"match_graph":0.25,"freshness":0.52,"weights":{"adoption":0.25,"quality":0.25,"ecosystem":0.15,"match_graph":0.23,"freshness":0.12}},"observed_outcomes":{"matches":0,"success_rate":0,"avg_confidence":0,"top_intents":[],"last_matched_at":null},"maintenance":{"status":"active","updated_at":"2026-06-17T09:51:03.579Z","last_scraped_at":"2026-05-03T14:00:15.503Z","last_commit":null},"community":{"stars":null,"forks":null,"weekly_downloads":null,"model_downloads":null,"model_likes":null}},"distribution":{"claim_url":"https://unfragile.ai/submit?claim=nextcloud-calendar","compare_url":"https://unfragile.ai/compare?artifact=nextcloud-calendar"}},"signature":"1u+U6bRut/4vQb/OZt7f9a6ZFdxyaBv7AVUczDW3e9UQhuEdNWwZnQYahDAVe+NIqHgOXFOu9eUZYKZNTjNdBg==","signedAt":"2026-06-22T18:46:56.118Z","signedBy":"unfragile.ai","version":1},"_links":{"self":"https://unfragile.ai/api/v1/passport/nextcloud-calendar","artifact":"https://unfragile.ai/nextcloud-calendar","verify":"https://unfragile.ai/api/v1/verify?slug=nextcloud-calendar","publicKey":"https://unfragile.ai/api/v1/trust-passport-public-key","spec":"https://unfragile.ai/trust","schema":"https://unfragile.ai/schema.json","docs":"https://unfragile.ai/docs"}}