# Caldav MCP (MCP server)

> Caldav MCP is an MCP server that adds productivity tools to AI assistants such as Claude Desktop, Claude Code and Cursor. CalDAV calendar operations (list, create, update, delete events) as MCP tools. It has 103 GitHub stars, is released under the MIT license and runs locally with npx -y caldav-mcp.

🗓️ A CalDAV Model Context Protocol (MCP) server to expose calendar operations as tools for AI assistants. Run the MCP server in development mode with auto-reload:

## Key facts

| Fact | Value |
|---|---|
| Repository | https://github.com/dominik1001/caldav-mcp |
| GitHub stars | 103 |
| License | MIT |
| Language | TypeScript |
| Transport | stdio |
| Packages | npm: caldav-mcp |
| Remote URL | none |
| Needs API key | yes |
| Official | no |
| Works with | Claude Desktop, Claude Code, Cursor, VS Code |
| Category | Productivity |
| Latest release | v0.10.0 (Jul 1, 2026) |
| Last commit | Sep 15, 2026 |
| MCP registry name | io.github.dominik1001/caldav-mcp |

## Install

### Claude Desktop (claude_desktop_config.json)

```json
{
  "mcpServers": {
    "caldav-mcp": {
      "command": "npx",
      "args": [
        "-y",
        "caldav-mcp"
      ],
      "env": {
        "CALDAV_BASE_URL": "your-value",
        "CALDAV_USERNAME": "your-value",
        "CALDAV_PASSWORD": "your-value"
      }
    }
  }
}
```

Settings > Developer > Edit Config. macOS: ~/Library/Application Support/Claude/, Windows: %APPDATA%\Claude\. Restart Claude Desktop afterwards.

### Claude Code

```sh
claude mcp add --env CALDAV_BASE_URL=your-value --env CALDAV_USERNAME=your-value --env CALDAV_PASSWORD=your-value --transport stdio caldav-mcp -- npx -y caldav-mcp
```

### Cursor (.cursor/mcp.json)

```json
{
  "mcpServers": {
    "caldav-mcp": {
      "type": "stdio",
      "command": "npx",
      "args": [
        "-y",
        "caldav-mcp"
      ],
      "env": {
        "CALDAV_BASE_URL": "your-value",
        "CALDAV_USERNAME": "your-value",
        "CALDAV_PASSWORD": "your-value"
      }
    }
  }
}
```

Project file; use ~/.cursor/mcp.json to enable it in every project.

### VS Code (.vscode/mcp.json)

```json
{
  "inputs": [
    {
      "type": "promptString",
      "id": "caldav_password",
      "description": "CALDAV_PASSWORD",
      "password": true
    }
  ],
  "servers": {
    "caldav-mcp": {
      "type": "stdio",
      "command": "npx",
      "args": [
        "-y",
        "caldav-mcp"
      ],
      "env": {
        "CALDAV_BASE_URL": "your-value",
        "CALDAV_USERNAME": "your-value",
        "CALDAV_PASSWORD": "${input:caldav_password}"
      }
    }
  }
}
```

Config formats checked against the official docs on 2026-10-07.

## Environment variables

- `CALDAV_BASE_URL` (required): Base URL of the CalDAV server (e.g. https://caldav.example.com)
- `CALDAV_USERNAME` (required): Username for CalDAV authentication
- `CALDAV_PASSWORD` (secret) (required): Password for CalDAV authentication

## Tools

- `list-calendars`: List all calendars returning both name and URL
- `list-events`: List all events between start and end date in the calendar specified by its URL
- `start`: string — Start date (ISO 8601)
- `create-event`: Creates an event in the calendar specified by its URL. For all-day events, set wholeDay to true.
- `summary`: string
- `location`: string (optional)
- `freq`: enum (DAILY | WEEKLY | MONTHLY | YEARLY) (optional)
- `interval`: number (optional)
- `count`: number (optional)
- `until`: string (optional)
- `byday`: array of string (optional)
- `bymonthday`: array of number (optional)
- `bymonth`: array of number (optional)
- `update-event`: Updates an existing event in the calendar specified by its URL. Only provided fields are changed.
- `delete-event`: Deletes an event in the calendar specified by its URL
- `list-todos`: List tasks (VTODOs) in the calendar specified by its URL. By default returns only open tasks (NEEDS-ACTION and…
- `status`: enum (OPEN | ALL | NEEDS-ACTION | COMPLETED | IN-PROCESS | CANCELLED) (optional) — Filter by status.
- `due_before`: string (optional) — Only tasks with a due date at or before this (ISO 8601).
- `due_after`: string (optional) — Only tasks with a due date at or after this (ISO 8601).
- `limit`: number (optional) — Max tasks to return (default 50, max 500)
- `offset`: number (optional) — Tasks to skip (default 0)
- `create-todo`: Creates a task (VTODO) in the calendar specified by its URL. Only summary is required; a task may have no dates.
- `update-todo`: Updates an existing task (VTODO) in the calendar specified by its URL. Only provided fields are changed.
- `complete-todo`: Marks a task (VTODO) as done. Sets its status to COMPLETED and records the completion time.
- `delete-todo`: Deletes a task (VTODO) in the calendar specified by its URL

## Similar MCP servers

- [Kaneo](https://appsgit.com/mcp-servers/kaneo): Official MCP server for Kaneo: manage tasks, projects, and labels from Claude and other MCP clients. (9,368 stars, MIT, official, needs API key)
- [PraisonAI](https://appsgit.com/mcp-servers/praisonai): AI Agents Framework with Self Reflection and MCP support. (9,192 stars, MIT)
- [Windows MCP](https://appsgit.com/mcp-servers/windows-mcp): An MCP Server for computer-use in Windows OS. (7,725 stars, MIT)
- [Excel MCP Server](https://appsgit.com/mcp-servers/excel-mcp-server): Create, read and edit Excel workbooks without Microsoft Excel. (4,212 stars, MIT)
- [Basic Memory](https://appsgit.com/mcp-servers/basic-memory): Local-first knowledge management with bi-directional LLM sync via Markdown files. (4,108 stars, AGPL-3.0)
- [RevoGrid DataGrid MCP](https://appsgit.com/mcp-servers/revogrid-datagrid-mcp): Token-free MCP server for structured RevoGrid Core, Pro, and Enterprise knowledge retrieval. (3,448 stars, MIT)

---

Canonical page: https://appsgit.com/mcp-servers/caldav-mcp
Source: appsgit (https://appsgit.com), the app store for github. Data from the GitHub API, refreshed nightly.
Machine access: JSON API https://appsgit.com/api/v1/apps (OpenAPI: https://appsgit.com/openapi.json), MCP server https://mcp.appsgit.com/mcp, full index https://appsgit.com/llms-full.txt.
