
Dav Mcp
Gives Claude full CRUD access to any CalDAV, CardDAV, or VTODO server through 26 specialized tools. You can query calendars with server-side filters, update individual contact fields without touching the rest of the vCard, manage tasks with priority and due dates, and even create new calendar collections on the fly. Works with Nextcloud, Baikal, Radicale, and iCloud out of the box, plus Google Calendar via OAuth2. The field-agnostic updates are the real win here since you can modify any RFC property or custom X-* field without reconstructing entire iCal objects. Reach for this when you need AI-driven calendar orchestration beyond simple event creation, or when you want contacts and tasks in the same integration.
- GitHub stars
- 42
- tools
- 27
- auth
- Secret needed
- transport
- STDIO
- env vars
- 10
- last updated
- Oct 9, 2026
Tools
27 toolsPublic tool metadata for what this MCP can expose to an agent.
list_calendarsList all available calendars
List all available calendars
No parameter schema in public metadata yet.
list_eventsList ALL events (use calendar_query for filtered searches)
List ALL events (use calendar_query for filtered searches)
No parameter schema in public metadata yet.
create_eventCreate a new calendar event
Create a new calendar event
No parameter schema in public metadata yet.
update_eventPREFERRED: Update any event field (SUMMARY, LOCATION, STATUS, custom X-* properties); move or convert an event with start_date/end_date/all_day
PREFERRED: Update any event field (SUMMARY, LOCATION, STATUS, custom X-* properties); move or convert an event with start_date/end_date/all_day
No parameter schema in public metadata yet.
update_event_rawUpdate event with raw iCal data (advanced)
Update event with raw iCal data (advanced)
No parameter schema in public metadata yet.
delete_eventDelete an event permanently
Delete an event permanently
No parameter schema in public metadata yet.
calendar_queryPREFERRED: Search and filter events efficiently by text, date range, or location
PREFERRED: Search and filter events efficiently by text, date range, or location
No parameter schema in public metadata yet.
make_calendarCreate a new calendar collection, optionally with a time zone (an IANA name such as Europe/Berlin, sent as a VTIMEZONE)
Create a new calendar collection, optionally with a time zone (an IANA name such as Europe/Berlin, sent as a VTIMEZONE)
No parameter schema in public metadata yet.
update_calendarUpdate calendar properties (display name, description, color, time zone)
Update calendar properties (display name, description, color, time zone)
No parameter schema in public metadata yet.
delete_calendarDelete a calendar and all its events
Delete a calendar and all its events
No parameter schema in public metadata yet.
calendar_multi_getBatch fetch multiple specific events by URLs
Batch fetch multiple specific events by URLs
No parameter schema in public metadata yet.
freebusy_queryFind free and busy time in a range ("when am I free?"), calculated client-side
Find free and busy time in a range ("when am I free?"), calculated client-side
No parameter schema in public metadata yet.
list_addressbooksList all available address books
List all available address books
No parameter schema in public metadata yet.
list_contactsList ALL contacts (use addressbook_query for filtered searches)
List ALL contacts (use addressbook_query for filtered searches)
No parameter schema in public metadata yet.
create_contactCreate a new contact (vCard)
Create a new contact (vCard)
No parameter schema in public metadata yet.
update_contactPREFERRED: Update any contact field (FN, EMAIL, TEL, ORG, ADR, custom X-* properties)
PREFERRED: Update any contact field (FN, EMAIL, TEL, ORG, ADR, custom X-* properties)
No parameter schema in public metadata yet.
update_contact_rawUpdate contact with raw vCard data (advanced)
Update contact with raw vCard data (advanced)
No parameter schema in public metadata yet.
delete_contactDelete a contact permanently
Delete a contact permanently
No parameter schema in public metadata yet.
addressbook_queryPREFERRED: Search and filter contacts efficiently by name, email, or organization
PREFERRED: Search and filter contacts efficiently by name, email, or organization
No parameter schema in public metadata yet.
addressbook_multi_getBatch fetch multiple specific contacts by URLs
Batch fetch multiple specific contacts by URLs
No parameter schema in public metadata yet.
list_todosList ALL todos/tasks (use todo_query for filtered searches)
List ALL todos/tasks (use todo_query for filtered searches)
No parameter schema in public metadata yet.
create_todoCreate a new todo/task with optional due date, priority, status
Create a new todo/task with optional due date, priority, status
No parameter schema in public metadata yet.
update_todoPREFERRED: Update any todo field (SUMMARY, STATUS, PRIORITY, DUE, PERCENT-COMPLETE, custom X-* properties)
PREFERRED: Update any todo field (SUMMARY, STATUS, PRIORITY, DUE, PERCENT-COMPLETE, custom X-* properties)
No parameter schema in public metadata yet.
update_todo_rawUpdate todo with raw VTODO iCal data (advanced)
Update todo with raw VTODO iCal data (advanced)
No parameter schema in public metadata yet.
delete_todoDelete a todo/task permanently
Delete a todo/task permanently
No parameter schema in public metadata yet.
todo_queryPREFERRED: Search and filter todos efficiently by status/due date
PREFERRED: Search and filter todos efficiently by status/due date
No parameter schema in public metadata yet.
todo_multi_getBatch fetch multiple specific todos by URLs
Batch fetch multiple specific todos by URLs
No parameter schema in public metadata yet.
Sponsors
Configuration
CALDAV_SERVER_URL*Base URL of your CalDAV/CardDAV server (e.g. https://example.com/dav.php/)
CALDAV_USERNAME*Username for DAV server authentication
CALDAV_PASSWORD*secretPassword or app-specific password for DAV server authentication
AUTH_METHODAuthentication method, case-insensitive: 'Basic' (default; switches to Digest by itself when the server only offers Digest), 'Digest' (Digest-only servers without ever sending the password) or 'OAuth' for Google
GOOGLE_SERVER_URLGoogle CalDAV endpoint; required when AUTH_METHOD=oauth2
GOOGLE_USERGoogle account email; required when AUTH_METHOD=oauth2
GOOGLE_CLIENT_IDOAuth2 client ID; required when AUTH_METHOD=oauth2
GOOGLE_CLIENT_SECRETsecretOAuth2 client secret; required when AUTH_METHOD=oauth2
GOOGLE_REFRESH_TOKENsecretOAuth2 refresh token; required when AUTH_METHOD=oauth2
GOOGLE_TOKEN_URLOAuth2 token endpoint for AUTH_METHOD=oauth2 (default: https://oauth2.googleapis.com/token)
Readme
dav-mcp
Give your AI agents the power of organization — Transform them into orchestrating assistants managing calendars, contacts, and tasks.
Built on 27 production-ready tools spanning CalDAV, CardDAV, and VTODO protocols.
Quick Start
Claude Code plugin
In Claude Code, run:
/plugin install dav-mcp --marketplace PhilflowIO/dav-mcp
Claude Code then asks for your server URL, username and password. The plugin also brings a skill that teaches Claude to use the tools well. Details are in the plugin README.
One-click install (Claude Desktop)
Details
- Repository
- github.com/philflowio/dav-mcp
- Package
dav-mcp- Transport
- STDIO
- Auth
- Required
- Registry
- MCP registry, active