Skip to content
Agentmart
Submit a tool

CalDAV calendars

Read and write CalDAV calendars: events, tasks and journal entries over the open standard

Connector by ni-c · GitHub account verified by the MCP Registry

IndexedMITLocal (stdio)★ 1
Write a review

Install

Works with Claude Code, Codex, VS Code, Cursor, Windsurf, Claude Desktop. Read the repository before you give any tool access to your data.

npx agentmarket install connector/ni-c-caldav-mcp

Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.

Get the weekly diff

The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.

We use your email only for this newsletter. Privacy

About

Read and write CalDAV calendars: events, tasks and journal entries over the open standard

No reviews yet. Installed it? Reviews come from verified installers only. How reviews work

Permissions

What this server can do and what it asks for, from its tool list, install config and code. Checked Oct 25, 2026.

Tools
10 read · 5 write · 7 delete
Secrets
2 (API keys, tokens or passwords)
Install scripts
None found
Runs as
Node.js package

Tools by what they do 22

Read from the source code; the running server may list different tools.

Read 10 · Look things up without changing anything.

  • get_event
  • get_free_busy
  • get_journal
  • get_server_info
  • get_task
  • list_calendars
  • list_events
  • list_journals
  • list_tasks
  • search_events

Write 5 · Create, change, send or run things.

  • complete_task
  • create_event
  • create_journal
  • create_task
  • respond_to_event

Delete 7 · Delete, drop, revoke or wipe things.

  • delete_event
  • delete_journal
  • delete_task
  • move_event
  • update_event
  • update_journal
  • update_task

Secrets and settings it asks for

Secrets: values you paste in that let it act as you.

  • CALDAV_PASSWORD
  • CALDAV_TOKEN

Other settings (environment variables or headers).

  • CALDAV_ALLOW_PLAINTEXT
  • CALDAV_ALLOW_TOOLS
  • CALDAV_CALENDARS
  • CALDAV_DENY_TOOLS
  • CALDAV_INSECURE_TLS
  • CALDAV_MAX_EVENTS
  • CALDAV_READ_ONLY
  • CALDAV_TIMEZONE
  • CALDAV_URL
  • CALDAV_USERNAME
  • CALDAV_USER_EMAIL
  • ELICITATION

Network hosts it talks to 6

  • apple.com · found in code
  • caldav-mcp.ni-c.de · found in code
  • calendarserver.org · found in code
  • github.com · found in code
  • glama.ai · found in code
  • raw.githubusercontent.com · found in code

Tools (22)

Read from the source code; the running server may differ. Descriptions are the server’s own words; hidden characters are shown as [U+…].

  • complete_taskMark a task done, or reopen it

    Sets the task’s status. Marking it done records the completion time and sets it to 100 %; reopening clears both. The previous state is written down in the entry, so this is reversible — which is why it does not ask first.

  • create_eventCreate an event

    Adds an event to a calendar. The UID and the file name are generated here, so an existing entry can never be overwritten by accident. Times without an offset are read in the timezone argument or in CALDAV_TIMEZONE.

  • create_journalCreate a journal entry

    Adds a dated note to a calendar that accepts journal entries. list_calendars reports which do.

  • create_taskCreate a task

    Adds a task to a calendar that accepts them. list_calendars reports which do — a collection created for events only will refuse a task, and this server checks before writing rather than passing the server’s refusal back.

  • delete_eventDelete an eventcan change or delete data

    Removes an event. An occurrence id removes just that occurrence — which iCalendar does by adding an exception date to the series, so the rest of the series is untouched. A series id removes the whole entry. A CalDAV server keeps no history: this cannot be undone.

  • delete_journalDelete a journal entrycan change or delete data

    Removes a dated note. A CalDAV server keeps no history, and a note is somebody’s writing: this cannot be undone.

  • delete_taskDelete a taskcan change or delete data

    Removes a task. A CalDAV server keeps no history: this cannot be undone. To mark a task done instead, use complete_task.

  • get_eventRead one event in fullread-only

    The complete event behind an id from a listing: the untruncated description, every reminder, every attendee, every attachment as metadata. An occurrence id answers with that one instance; a series id answers with the series and its rule.

  • get_free_busyWhen the calendar is busyread-only

    Busy periods in a time range — start and end only, no titles and no attendees. The datasparing way to ask "when am I free": nothing anybody else wrote comes back, so there is no untrusted content in the answer at all.

  • get_journalRead one journal entry in fullread-only

    The complete note behind an id from list_journals, untruncated. This is the longest piece of somebody else’s prose this server hands over, so the text channel carries it inside an explicit untrusted fence.

  • get_server_infoWhat the connected CalDAV server can doread-only

    Reports the DAV compliance tokens, which components each calendar accepts, and whether the optional features this server relies on actually work here. The first thing to run when something behaves differently than expected — CalDAV implementations differ more than the specification suggests.

  • get_taskRead one task in fullread-only

    The complete task behind an id from list_tasks, with its untruncated description and every reminder.

  • list_calendarsList the calendarsread-only

    Every calendar this server may use, with the id to pass to the other tools. Always asks the server rather than answering from a cache — being current is this tool’s whole job.

  • list_eventsList events in a time rangeread-only

    Events between two points in time, from every calendar this server may see or from the ones named. Recurring events are expanded into their individual occurrences, so each one has its own id and can be changed on its own. Defaults to the next 30 days.

  • list_journalsList journal entriesread-only

    Dated notes in a calendar, inside a time range. Most calendar clients hide these; a CalDAV server stores them alongside events and tasks, and some workflows use them as a diary.

Show 7 more tools
  • list_tasksList tasksread-only

    Tasks with a start or due date inside a time range. Tasks with no date at all are not returned by a time-range query — the CalDAV specification defines the filter against the dates, and a task with none of them matches no window.

  • move_eventMove an event to another calendarcan change or delete data

    Copies an event into another calendar and removes it from the first. The content survives, the address does not: every id that named this event stops working, and a listing is needed to get the new one. The destination may be a calendar other people can see.

  • respond_to_eventAccept or decline an invitation

    Sets your own participation status on an event you were invited to. On a server with scheduling enabled this sends a reply to the organiser, which cannot be unsent — so it asks first. It changes only your own attendee line and never anybody else’s. This server cannot add or remove attendees at all.

  • search_eventsSearch events by textread-only

    Finds events whose summary, description or location contains a term. The search runs on the CalDAV server, one request per field and per calendar — the specification combines several field filters with AND, so asking for all three at once would only match entries carrying the term in every one of them.

  • update_eventChange an eventcan change or delete data

    Changes the fields named and leaves everything else exactly as it was — including properties this server does not model, attendees, attachments and reminders it cannot write. Pass null to clear a field. Guarded by the entry’s ETag: if it changed since it was read, nothing is written and the answer says what it is now. Changing a whole recurring series asks first.

  • update_journalChange a journal entrycan change or delete data

    Replaces the fields named. A CalDAV server keeps no version history, so the previous text of a note is gone once this succeeds — pass only the fields to change, and pass null to clear one. Guarded by the entry’s ETag, so a note changed elsewhere in the meantime is not silently overwritten.

  • update_taskChange a taskcan change or delete data

    Changes the fields named and leaves everything else as it was. Pass null to clear a field. Guarded by the entry’s ETag. To mark a task done use complete_task, which records the completion time as well.

Signals

Stars
1
Forks
0
Open issues
0
Weekly downloads
138
Last commit
Oct 22, 2026 (6 days ago)
Last release
Oct 13, 2026 (15 days ago)
Last package publish
Oct 13, 2026 (15 days ago)

From GitHub (fetched Oct 24, 2026) and the package registry.

Details

Registry name
io.github.ni-c/caldav-mcp
Version
0.1.5
Auth
API key
Packages
npm @ni-c/caldav-mcpoci ghcr.io/ni-c/caldav-mcp:0.1.5
License
MIT
First seen
Oct 24, 2026
Last checked
Oct 24, 2026

More from ni-c

Cite this page

CalDAV calendars MCP server. Agent Mart. https://agentmart.dev/connectors/ni-c-caldav-mcp (last updated 2026-10-24)