Dav MCP
AI-orchestrated calendars, contacts & tasks across any DAV platform.
Connector by PhilflowIO · GitHub account verified by the MCP Registry
Install
Works with Claude Code, Codex, VS Code, Cursor, Windsurf, Claude Desktop. Read the repository before you give any tool access to your data.
npx agentmarket install connector/philflowio-dav-mcp
Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.
Get the weekly diff
The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.
About
Use cases: scheduling, project-management
Reviews
Write a reviewNo reviews yet. Installed it? Reviews come from verified installers only. How reviews work
Permissions
What this server can do and what it asks for, from its tool list, install config and code. Checked Oct 25, 2026.
- Tools
- 12 read · 4 write · 11 delete
- Secrets
- 4 (API keys, tokens or passwords)
- Install scripts
- None found
- Runs as
- Node.js package
Tools by what they do 27
Read from the source code; the running server may list different tools.
Read 12 · Look things up without changing anything.
addressbook_multi_getaddressbook_querycalendar_multi_getcalendar_queryfreebusy_querylist_addressbookslist_calendarslist_contactslist_eventslist_todostodo_multi_gettodo_query
Write 4 · Create, change, send or run things.
create_contactcreate_eventcreate_todomake_calendar
Delete 11 · Delete, drop, revoke or wipe things.
delete_calendardelete_contactdelete_eventdelete_todoupdate_calendarupdate_contactupdate_contact_rawupdate_eventupdate_event_rawupdate_todoupdate_todo_raw
Secrets and settings it asks for
Secrets: values you paste in that let it act as you.
AUTH_METHODCALDAV_PASSWORDGOOGLE_CLIENT_SECRETGOOGLE_REFRESH_TOKEN
Other settings (environment variables or headers).
CALDAV_SERVER_URLCALDAV_USERNAMEGOOGLE_CLIENT_IDGOOGLE_SERVER_URLGOOGLE_TOKEN_URLGOOGLE_USER
Network hosts it talks to 7
apidata.googleusercontent.com· found in codeapple.com· found in codecaldav.icloud.com· found in codeexample.invalid· found in codegithub.com· found in codeglama.ai· found in codeoauth2.googleapis.com· found in code
Files it touches
/home/dave/Dokumente/projects/COMPREHENSIVE_TEST_RESULTS.md- Your home directory (~)
- Any path the agent passes to its tools
Tools (27)
Read from the source code; the running server may differ. Descriptions are the server’s own words; hidden characters are shown as [U+…].
addressbook_multi_getGet contacts by URLread-onlyBatch fetch multiple specific contacts by their URLs. Use when you have exact contact URLs and want to retrieve their details
addressbook_querySearch contactsread-only⭐ PREFERRED: Search and filter contacts efficiently (name, email, organization). Use for "find contacts with...", "search for email...", "contacts at company..." queries. Use instead of list_contacts when ANY filter is specified. Omit addressbook_url to search across ALL addressbooks automatically.
calendar_multi_getGet events by URLread-onlyBatch fetch multiple specific calendar events by their URLs. Use when you have exact event URLs and want to retrieve their details
calendar_querySearch eventsread-only⭐ PREFERRED: Search and filter calendar events efficiently. Use instead of list_events to avoid loading thousands of entries. Omit calendar_url to search across ALL calendars automatically. With a time range, a recurring event is listed as its first occurrence in the range (one already running at the range start counts); a cancelled occurrence is listed too, with its Status.
create_contactCreate contactCreate a new contact (vCard) with name, email, phone, organization, and other details
create_eventCreate eventCreate a new calendar event with title, date, time, optional description and location
create_todoCreate to-doCreate a new todo/task in a calendar. Use this when user wants to add a task, todo item, or reminder with optional due date, priority, and status.
delete_calendarDelete calendarcan change or delete dataDelete a calendar and all its events. WARNING: on servers without a trash bin this cannot be undone; servers with one (e.g. Nextcloud) keep the calendar in the trash for a while. Use this when user explicitly asks to "delete calendar" or "remove calendar"
delete_contactDelete contactcan change or delete dataPermanently delete a contact (vCard) from the address book. WARNING: This action cannot be undone — the contact is removed from the server immediately. Use only when the user explicitly requests deletion. Obtain the vCard URL and etag from list_contacts or addressbook_query first. The etag ensures no conflicting changes occurred since the contact was last retrieved. If the listing shows an etag_note instead of an etag, this contact cannot be deleted with this tool: tell the user what the note says.
delete_eventDelete eventcan change or delete dataPermanently delete a calendar event. WARNING: This action cannot be undone — the event is removed from the server immediately. Use only when the user explicitly requests deletion. Obtain the event URL and etag from list_events or calendar_query first. The etag ensures no conflicting changes occurred since the event was last retrieved. If the listing shows an etag_note instead of an etag, this event cannot be deleted with this tool: tell the user what the note says.
delete_todoDelete to-docan change or delete dataPermanently delete a todo/task from the calendar. WARNING: This action cannot be undone — the todo is removed from the server immediately. Use only when the user explicitly requests deletion. Obtain the todo URL and etag from list_todos or todo_query first. The etag ensures no conflicting changes occurred since the todo was last retrieved. If the listing shows an etag_note instead of an etag, this todo cannot be deleted with this tool: tell the user what the note says.
freebusy_queryCheck free/busyread-onlyFind free and busy time in a date range — use for "when am I free?", "am I available Tuesday afternoon?" or finding a slot for a new meeting. Searches all calendars unless one is given. Events marked TRANSPARENT (does not block time) and cancelled events are ignored; recurring events are expanded, each occurrence at its own time and status, so a single cancelled occurrence is free and a moved one is busy where it moved to. A recurring event too dense to expand fully is named in a warning. Times are shown in the calendar's time zone (several calendars in different zones: the zone dav-mcp runs i…
list_addressbooksList address booksread-onlyList all available address books from the CardDAV server. Use this to get address book URLs needed for other contact operations
list_calendarsList calendarsread-onlyList all available calendars from the CalDAV server. Use this to get calendar URLs needed for other operations
list_contactsList contactsread-onlyList ALL contacts from an address book without filtering. WARNING: Returns all contacts which can be thousands - use addressbook_query instead when searching for specific contacts by name, email, or organization to save tokens
Show 12 more tools
list_eventsList eventsread-onlyList ALL events from a single calendar without filtering. WARNING: Returns all events which can be many thousands - use calendar_query instead for searching with filters (supports multi-calendar search). With a time range, a recurring event is listed as its first occurrence in the range (one already running at the range start counts); a cancelled occurrence is listed too, with its Status.
list_todosList to-dosread-onlyList ALL todos/tasks from a calendar. WARNING: Returns all todos without filtering - use todo_query for searches with filters by status, summary, or due date.
make_calendarCreate calendarCreate a new calendar collection on the CalDAV server with optional color, description, time zone and component types. The time zone is the one events without a zone of their own (floating times, all-day dates) are read in. The URL is derived from display_name. If a calendar already exists at that URL, nothing is created and the error names the existing calendar — use it instead of creating another. If the URL is only held by something else (e.g. a deleted calendar in the trash bin), a numeric suffix is added (-2, -3, ...). Always use the URL returned in the response.
todo_multi_getGet to-dos by URLread-onlyBatch fetch multiple specific todos by their URLs. More efficient than fetching one by one when you have exact todo URLs.
todo_querySearch to-dosread-only⭐ PREFERRED: Search and filter todos efficiently. Use instead of list_todos to conserve tokens. Omit calendar_url to search across ALL calendars automatically.
update_calendarUpdate calendar propertiescan change or delete dataUpdate an existing calendar's properties (display name, description, color, time zone). The time zone is the one events without a zone of their own (floating times, all-day dates) are read in. Use this when user asks to "rename calendar", "change calendar color", or "update calendar properties"
update_contactUpdate contact fieldscan change or delete dataPREFERRED: Update contact fields without vCard formatting. Supports: FN (full name), N (structured name), EMAIL, TEL (phone), ORG (organization), TITLE (job title), NOTE, URL, ADR (address), BDAY (birthday), and any RFC 6350 vCard property including custom X-* properties.
update_contact_rawReplace contact vCard datacan change or delete dataADVANCED: Update contact with raw vCard data. Requires manual vCard formatting - use update_contact instead for simple field updates (name, email, phone). Only use this if you have complete pre-formatted vCard data or need to update advanced vCard properties.
update_eventUpdate event fieldscan change or delete dataPREFERRED: Update event fields without iCal formatting. Use start_date/end_date/all_day to move an event or convert it between all-day and timed. Use fields for everything else: SUMMARY (title), DESCRIPTION, LOCATION, STATUS (TENTATIVE/CONFIRMED/CANCELLED) and any other RFC 5545 or custom X-* property. Recurring events: fields and dates change the whole series; moving the start moves every occurrence, cancelled and changed ones included, and the reply lists what moved (a move the rule cannot follow is refused, saying what to give instead, e.g. fields.RRULE). To cancel or bring back single occu…
update_event_rawReplace event iCalendar datacan change or delete dataADVANCED: Update event with raw iCal data. Requires manual iCal formatting - use update_event instead for simple field updates (summary, description). Use this to move or retitle a single occurrence of a recurring event (fetch it with calendar_multi_get, add or edit the VEVENT with that occurrence's RECURRENCE-ID, send the whole object) and to add or remove extra dates (RDATE). To cancel or restore occurrences, use update_event with cancel_occurrences/restore_occurrences. Also for complete pre-formatted iCal data or advanced iCal properties.
update_todoUpdate to-do fieldscan change or delete dataPREFERRED: Update todo fields without iCal formatting. Supports: SUMMARY (title), DESCRIPTION (details), STATUS (NEEDS-ACTION/IN-PROCESS/COMPLETED/CANCELLED), PRIORITY (0-9), DUE (due date), PERCENT-COMPLETE (0-100), and any RFC 5545 VTODO or custom X-* property. Recurring todos: fields change the whole series; changing DTSTART moves every occurrence, cancelled and changed ones included, and the reply lists what moved (a move the rule cannot follow is refused, saying what to give instead). To cancel or bring back single occurrences use cancel_occurrences/restore_occurrences; to change one occu…
update_todo_rawReplace to-do iCalendar datacan change or delete dataADVANCED: Update todo with raw VTODO iCal data. Requires manual iCal formatting - use update_todo instead for simple field updates (summary, description, status). Use this to move or retitle a single occurrence of a recurring todo (fetch it with todo_multi_get, add or edit the VTODO with that occurrence's RECURRENCE-ID, send the whole object) and to add or remove extra dates (RDATE). To cancel or restore occurrences, use update_todo with cancel_occurrences/restore_occurrences. Also for complete pre-formatted iCal data or advanced iCal properties.
Compare and alternatives
Featured in
Signals
- Stars
- 40
- Forks
- 18
- Open issues
- 9
- Contributors
- 3
- Last commit
- Oct 10, 2026 (18 days ago)
- Last release
- Oct 9, 2026 (19 days ago)
From GitHub (fetched Oct 24, 2026).
Details
- Registry name
io.github.PhilflowIO/dav-mcp- Version
- 5.0.0
- Auth
- API key
- Packages
- npm dav-mcp
- License
- MIT
- Repository
- github.com/PhilflowIO/dav-mcp
- First seen
- Oct 24, 2026
- Last checked
- Oct 24, 2026
Cite this page
Dav MCP. Agent Mart. https://agentmart.dev/connectors/philflowio-dav-mcp (last updated 2026-10-24)