Home › Communication › CalDAV calendars
CalDAV calendars
Read and write CalDAV calendars: events, tasks and journal entries over the open standard
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_URLrequired — 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_PASSWORDsecret — Password or app-specific password. Deleted from the environment once read.CALDAV_TOKENsecret — 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 lineCALDAV_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 leftELICITATION— 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_URLrequired — 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_PASSWORDsecret — Password or app-specific password. Deleted from the environment once read.CALDAV_TOKENsecret — 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 lineCALDAV_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 leftELICITATION— 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
inbox-zero
An MCP server for Inbox Zero. Adds functionality on top of Gmail like finding out which emails you need to reply to or need to follow up on.
whatsapp-mcp
An MCP server for searching your personal WhatsApp messages, contacts and sending messages to individuals or groups
slack-mcp-server
The most powerful MCP server for Slack Workspaces.
telegram-mcp
Telegram API integration for accessing user data, managing dialogs (chats, channels, groups), retrieving messages, sending messages and…
emailmd
Render markdown into email-safe HTML, lint drafts for deliverability problems, and preview emails.
Microsoft 365 MCP Server
Interact with Microsoft 365 and Office services through the Microsoft Graph API.
Listed in punkpeye/awesome-mcp-servers (MIT)
Data from the Official MCP Registry