CalDAV calendars
Read and write CalDAV calendars: events, tasks and journal entries over the open standard
Installation
Ajoutez ceci à la configuration MCP de votre client (Claude Desktop : claude_desktop_config.json ; Cursor : .cursor/mcp.json ; VS Code et les autres utilisent la même forme « mcpServers »).
@ni-c/caldav-mcpclaude mcp add caldav-calendars -e 'CALDAV_URL=<CALDAV_URL>' -e 'CALDAV_USERNAME=<CALDAV_USERNAME>' -e 'CALDAV_PASSWORD=<your caldav_password>' -e 'CALDAV_TOKEN=<your caldav_token>' -e 'CALDAV_CALENDARS=<CALDAV_CALENDARS>' -e 'CALDAV_TIMEZONE=<CALDAV_TIMEZONE>' -e 'CALDAV_USER_EMAIL=<CALDAV_USER_EMAIL>' -e 'CALDAV_MAX_EVENTS=<CALDAV_MAX_EVENTS>' -e 'CALDAV_READ_ONLY=<CALDAV_READ_ONLY>' -e 'CALDAV_INSECURE_TLS=<CALDAV_INSECURE_TLS>' -e 'CALDAV_ALLOW_PLAINTEXT=<CALDAV_ALLOW_PLAINTEXT>' -e 'CALDAV_ALLOW_TOOLS=<CALDAV_ALLOW_TOOLS>' -e 'CALDAV_DENY_TOOLS=<CALDAV_DENY_TOOLS>' -e 'ELICITATION=<ELICITATION>' -- npx -y @ni-c/caldav-mcp@0.1.5
{
"mcpServers": {
"caldav-calendars": {
"command": "npx",
"args": [
"-y",
"@ni-c/caldav-mcp@0.1.5"
],
"env": {
"CALDAV_URL": "<CALDAV_URL>",
"CALDAV_USERNAME": "<CALDAV_USERNAME>",
"CALDAV_PASSWORD": "<your caldav_password>",
"CALDAV_TOKEN": "<your caldav_token>",
"CALDAV_CALENDARS": "<CALDAV_CALENDARS>",
"CALDAV_TIMEZONE": "<CALDAV_TIMEZONE>",
"CALDAV_USER_EMAIL": "<CALDAV_USER_EMAIL>",
"CALDAV_MAX_EVENTS": "<CALDAV_MAX_EVENTS>",
"CALDAV_READ_ONLY": "<CALDAV_READ_ONLY>",
"CALDAV_INSECURE_TLS": "<CALDAV_INSECURE_TLS>",
"CALDAV_ALLOW_PLAINTEXT": "<CALDAV_ALLOW_PLAINTEXT>",
"CALDAV_ALLOW_TOOLS": "<CALDAV_ALLOW_TOOLS>",
"CALDAV_DENY_TOOLS": "<CALDAV_DENY_TOOLS>",
"ELICITATION": "<ELICITATION>"
}
}
}
}
Variables d'environnement
CALDAV_URLobligatoire Root of the CalDAV server, e.g. https://dav.example.net. A calendar collection URL also works.CALDAV_USERNAMEAccount 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_CALENDARSComma-separated calendars this server may touch, by path or final path segment. Default: all of them.CALDAV_TIMEZONEIANA zone for timestamps that carry no offset, e.g. Europe/Berlin (default: UTC)CALDAV_USER_EMAILThe address you are invited as, so respond_to_event can find your own attendee lineCALDAV_MAX_EVENTSEntries a listing returns by default, 1 to 500 (default: 100)CALDAV_READ_ONLYSet to true to register only the read tools (default: false)CALDAV_INSECURE_TLSSet to true to accept a self-signed certificate on the configured host only (default: false)CALDAV_ALLOW_PLAINTEXTSet to true to allow a plain http:// URL to a host that is not loopback, which sends the credentials unencrypted (default: false)CALDAV_ALLOW_TOOLSComma-separated tool names or list_* prefixes to register; 'essential' selects a curated preset (default: all tools)CALDAV_DENY_TOOLSComma-separated tool names or list_* prefixes to remove from whatever the allow list leftELICITATIONDeliberately 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)
ghcr.io/ni-c/caldav-mcp:0.1.5claude mcp add caldav-calendars -e 'CALDAV_URL=<CALDAV_URL>' -e 'CALDAV_USERNAME=<CALDAV_USERNAME>' -e 'CALDAV_PASSWORD=<your caldav_password>' -e 'CALDAV_TOKEN=<your caldav_token>' -e 'CALDAV_CALENDARS=<CALDAV_CALENDARS>' -e 'CALDAV_TIMEZONE=<CALDAV_TIMEZONE>' -e 'CALDAV_USER_EMAIL=<CALDAV_USER_EMAIL>' -e 'CALDAV_MAX_EVENTS=<CALDAV_MAX_EVENTS>' -e 'CALDAV_READ_ONLY=<CALDAV_READ_ONLY>' -e 'CALDAV_INSECURE_TLS=<CALDAV_INSECURE_TLS>' -e 'CALDAV_ALLOW_PLAINTEXT=<CALDAV_ALLOW_PLAINTEXT>' -e 'CALDAV_ALLOW_TOOLS=<CALDAV_ALLOW_TOOLS>' -e 'CALDAV_DENY_TOOLS=<CALDAV_DENY_TOOLS>' -e 'ELICITATION=<ELICITATION>' -- docker run -i --rm ghcr.io/ni-c/caldav-mcp:0.1.5
{
"mcpServers": {
"caldav-calendars": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"ghcr.io/ni-c/caldav-mcp:0.1.5"
],
"env": {
"CALDAV_URL": "<CALDAV_URL>",
"CALDAV_USERNAME": "<CALDAV_USERNAME>",
"CALDAV_PASSWORD": "<your caldav_password>",
"CALDAV_TOKEN": "<your caldav_token>",
"CALDAV_CALENDARS": "<CALDAV_CALENDARS>",
"CALDAV_TIMEZONE": "<CALDAV_TIMEZONE>",
"CALDAV_USER_EMAIL": "<CALDAV_USER_EMAIL>",
"CALDAV_MAX_EVENTS": "<CALDAV_MAX_EVENTS>",
"CALDAV_READ_ONLY": "<CALDAV_READ_ONLY>",
"CALDAV_INSECURE_TLS": "<CALDAV_INSECURE_TLS>",
"CALDAV_ALLOW_PLAINTEXT": "<CALDAV_ALLOW_PLAINTEXT>",
"CALDAV_ALLOW_TOOLS": "<CALDAV_ALLOW_TOOLS>",
"CALDAV_DENY_TOOLS": "<CALDAV_DENY_TOOLS>",
"ELICITATION": "<ELICITATION>"
}
}
}
}
Variables d'environnement
CALDAV_URLobligatoire Root of the CalDAV server, e.g. https://dav.example.net. A calendar collection URL also works.CALDAV_USERNAMEAccount 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_CALENDARSComma-separated calendars this server may touch, by path or final path segment. Default: all of them.CALDAV_TIMEZONEIANA zone for timestamps that carry no offset, e.g. Europe/Berlin (default: UTC)CALDAV_USER_EMAILThe address you are invited as, so respond_to_event can find your own attendee lineCALDAV_MAX_EVENTSEntries a listing returns by default, 1 to 500 (default: 100)CALDAV_READ_ONLYSet to true to register only the read tools (default: false)CALDAV_INSECURE_TLSSet to true to accept a self-signed certificate on the configured host only (default: false)CALDAV_ALLOW_PLAINTEXTSet to true to allow a plain http:// URL to a host that is not loopback, which sends the credentials unencrypted (default: false)CALDAV_ALLOW_TOOLSComma-separated tool names or list_* prefixes to register; 'essential' selects a curated preset (default: all tools)CALDAV_DENY_TOOLSComma-separated tool names or list_* prefixes to remove from whatever the allow list leftELICITATIONDeliberately 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)
Questions fréquentes
Qu'est-ce que CalDAV calendars ?
Read and write CalDAV calendars: events, tasks and journal entries over the open standard
Comment installer CalDAV calendars ?
Il s'exécute sur votre machine. Dans Claude Code : claude mcp add caldav-calendars -e 'CALDAV_URL=<CALDAV_URL>' -e 'CALDAV_USERNAME=<CALDAV_USERNAME>' -e 'CALDAV_PASSWORD=<your caldav_password>' -e 'CALDAV_TOKEN=<your caldav_token>' -e 'CALDAV_CALENDARS=<CALDAV_CALENDARS>' -e 'CALDAV_TIMEZONE=<CALDAV_TIMEZONE>' -e 'CALDAV_USER_EMAIL=<CALDAV_USER_EMAIL>' -e 'CALDAV_MAX_EVENTS=<CALDAV_MAX_EVENTS>' -e 'CALDAV_READ_ONLY=<CALDAV_READ_ONLY>' -e 'CALDAV_INSECURE_TLS=<CALDAV_INSECURE_TLS>' -e 'CALDAV_ALLOW_PLAINTEXT=<CALDAV_ALLOW_PLAINTEXT>' -e 'CALDAV_ALLOW_TOOLS=<CALDAV_ALLOW_TOOLS>' -e 'CALDAV_DENY_TOOLS=<CALDAV_DENY_TOOLS>' -e 'ELICITATION=<ELICITATION>' -- npx -y @ni-c/caldav-mcp@0.1.5. Pour les autres clients, collez la configuration JSON de cette page dans leurs réglages MCP.
Faut-il une clé API pour CalDAV calendars ?
Oui. Il attend CALDAV_URL, CALDAV_PASSWORD, CALDAV_TOKEN, à renseigner dans sa configuration.
CalDAV calendars est-il open source ?
Son code est public sur GitHub, mais le dépôt ne déclare pas de licence standard.
Qui maintient CalDAV calendars ?
Il est publié par ni-c. AI.tn le référence sans le maintenir ni le recommander.
Issu du registre MCP officiel. Être listé n'est pas une recommandation : vérifiez le code et les permissions d'un serveur avant de lui donner accès à vos données.