HomeCommunication › CalDAV calendars

CalDAV calendars

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

TypeScript CloudLocal
★ 0 stars Last pushed 2026-09-20 License: MIT

Topics: Communication

Connect

Review any command before running it. Package names and URLs come from the server's own registry entry.

Package (npm 0.1.4)

npx -y @ni-c/[email protected]

Or add to your MCP client config:

{
  "mcpServers": {
    "caldav-mcp": {
      "command": "npx",
      "args": [
        "-y",
        "@ni-c/[email protected]"
      ],
      "env": {
        "CALDAV_URL": "<YOUR_VALUE>",
        "CALDAV_USERNAME": "<YOUR_VALUE>",
        "CALDAV_PASSWORD": "<YOUR_VALUE>",
        "CALDAV_TOKEN": "<YOUR_VALUE>",
        "CALDAV_CALENDARS": "<YOUR_VALUE>",
        "CALDAV_TIMEZONE": "<YOUR_VALUE>",
        "CALDAV_USER_EMAIL": "<YOUR_VALUE>",
        "CALDAV_MAX_EVENTS": "<YOUR_VALUE>",
        "CALDAV_READ_ONLY": "<YOUR_VALUE>",
        "CALDAV_INSECURE_TLS": "<YOUR_VALUE>",
        "CALDAV_ALLOW_PLAINTEXT": "<YOUR_VALUE>",
        "CALDAV_ALLOW_TOOLS": "<YOUR_VALUE>",
        "CALDAV_DENY_TOOLS": "<YOUR_VALUE>",
        "ELICITATION": "<YOUR_VALUE>"
      }
    }
  }
}
  • CALDAV_URL required — Root of the CalDAV server, e.g. https://dav.example.net. A calendar collection URL also works.
  • CALDAV_USERNAME — Account name. Most hosted services want an app-specific password with it.
  • CALDAV_PASSWORD secret — Password or app-specific password. Deleted from the environment once read.
  • CALDAV_TOKEN secret — Bearer token, as an alternative to username and password. Not both.
  • CALDAV_CALENDARS — Comma-separated calendars this server may touch, by path or final path segment. Default: all of them.
  • CALDAV_TIMEZONE — IANA zone for timestamps that carry no offset, e.g. Europe/Berlin (default: UTC)
  • CALDAV_USER_EMAIL — The address you are invited as, so respond_to_event can find your own attendee line
  • CALDAV_MAX_EVENTS — Entries a listing returns by default, 1 to 500 (default: 100)
  • CALDAV_READ_ONLY — Set to true to register only the read tools (default: false)
  • CALDAV_INSECURE_TLS — Set to true to accept a self-signed certificate on the configured host only (default: false)
  • CALDAV_ALLOW_PLAINTEXT — Set to true to allow a plain http:// URL to a host that is not loopback, which sends the credentials unencrypted (default: false)
  • CALDAV_ALLOW_TOOLS — Comma-separated tool names or list_* prefixes to register; 'essential' selects a curated preset (default: all tools)
  • CALDAV_DENY_TOOLS — Comma-separated tool names or list_* prefixes to remove from whatever the allow list left
  • ELICITATION — Deliberately unprefixed, and reaches every MCP server in the environment. Set to false to make guarded tools use the two-call token instead of a dialog (default: true)

Package (oci)

docker run -i --rm ghcr.io/ni-c/caldav-mcp:0.1.4

Or add to your MCP client config:

{
  "mcpServers": {
    "caldav-mcp": {
      "command": "docker",
      "args": [
        "run",
        "-i",
        "--rm",
        "ghcr.io/ni-c/caldav-mcp:0.1.4"
      ],
      "env": {
        "CALDAV_URL": "<YOUR_VALUE>",
        "CALDAV_USERNAME": "<YOUR_VALUE>",
        "CALDAV_PASSWORD": "<YOUR_VALUE>",
        "CALDAV_TOKEN": "<YOUR_VALUE>",
        "CALDAV_CALENDARS": "<YOUR_VALUE>",
        "CALDAV_TIMEZONE": "<YOUR_VALUE>",
        "CALDAV_USER_EMAIL": "<YOUR_VALUE>",
        "CALDAV_MAX_EVENTS": "<YOUR_VALUE>",
        "CALDAV_READ_ONLY": "<YOUR_VALUE>",
        "CALDAV_INSECURE_TLS": "<YOUR_VALUE>",
        "CALDAV_ALLOW_PLAINTEXT": "<YOUR_VALUE>",
        "CALDAV_ALLOW_TOOLS": "<YOUR_VALUE>",
        "CALDAV_DENY_TOOLS": "<YOUR_VALUE>",
        "ELICITATION": "<YOUR_VALUE>"
      }
    }
  }
}
  • CALDAV_URL required — Root of the CalDAV server, e.g. https://dav.example.net. A calendar collection URL also works.
  • CALDAV_USERNAME — Account name. Most hosted services want an app-specific password with it.
  • CALDAV_PASSWORD secret — Password or app-specific password. Deleted from the environment once read.
  • CALDAV_TOKEN secret — Bearer token, as an alternative to username and password. Not both.
  • CALDAV_CALENDARS — Comma-separated calendars this server may touch, by path or final path segment. Default: all of them.
  • CALDAV_TIMEZONE — IANA zone for timestamps that carry no offset, e.g. Europe/Berlin (default: UTC)
  • CALDAV_USER_EMAIL — The address you are invited as, so respond_to_event can find your own attendee line
  • CALDAV_MAX_EVENTS — Entries a listing returns by default, 1 to 500 (default: 100)
  • CALDAV_READ_ONLY — Set to true to register only the read tools (default: false)
  • CALDAV_INSECURE_TLS — Set to true to accept a self-signed certificate on the configured host only (default: false)
  • CALDAV_ALLOW_PLAINTEXT — Set to true to allow a plain http:// URL to a host that is not loopback, which sends the credentials unencrypted (default: false)
  • CALDAV_ALLOW_TOOLS — Comma-separated tool names or list_* prefixes to register; 'essential' selects a curated preset (default: all tools)
  • CALDAV_DENY_TOOLS — Comma-separated tool names or list_* prefixes to remove from whatever the allow list left
  • ELICITATION — Deliberately unprefixed, and reaches every MCP server in the environment. Set to false to make guarded tools use the two-call token instead of a dialog (default: true)

Related servers

Listed in punkpeye/awesome-mcp-servers (MIT)

Data from the Official MCP Registry