Skip to content
Agentmart
Submit a tool

Dav MCP

AI-orchestrated calendars, contacts & tasks across any DAV platform.

Connector by PhilflowIO · GitHub account verified by the MCP Registry

IndexedMITLocal (stdio)★ 40
Write a review

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.

We use your email only for this newsletter. Privacy

About

AI-orchestrated calendars, contacts & tasks across any DAV platform. 27 tools, field-agnostic.

Use cases: scheduling, project-management

No 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_get
  • addressbook_query
  • calendar_multi_get
  • calendar_query
  • freebusy_query
  • list_addressbooks
  • list_calendars
  • list_contacts
  • list_events
  • list_todos
  • todo_multi_get
  • todo_query

Write 4 · Create, change, send or run things.

  • create_contact
  • create_event
  • create_todo
  • make_calendar

Delete 11 · Delete, drop, revoke or wipe things.

  • delete_calendar
  • delete_contact
  • delete_event
  • delete_todo
  • update_calendar
  • update_contact
  • update_contact_raw
  • update_event
  • update_event_raw
  • update_todo
  • update_todo_raw

Secrets and settings it asks for

Secrets: values you paste in that let it act as you.

  • AUTH_METHOD
  • CALDAV_PASSWORD
  • GOOGLE_CLIENT_SECRET
  • GOOGLE_REFRESH_TOKEN

Other settings (environment variables or headers).

  • CALDAV_SERVER_URL
  • CALDAV_USERNAME
  • GOOGLE_CLIENT_ID
  • GOOGLE_SERVER_URL
  • GOOGLE_TOKEN_URL
  • GOOGLE_USER

Network hosts it talks to 7

  • apidata.googleusercontent.com · found in code
  • apple.com · found in code
  • caldav.icloud.com · found in code
  • example.invalid · found in code
  • github.com · found in code
  • glama.ai · found in code
  • oauth2.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-only

    Batch 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-only

    Batch 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 contact

    Create a new contact (vCard) with name, email, phone, organization, and other details

  • create_eventCreate event

    Create a new calendar event with title, date, time, optional description and location

  • create_todoCreate to-do

    Create 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 data

    Delete 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 data

    Permanently 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 data

    Permanently 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 data

    Permanently 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-only

    Find 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-only

    List all available address books from the CardDAV server. Use this to get address book URLs needed for other contact operations

  • list_calendarsList calendarsread-only

    List all available calendars from the CalDAV server. Use this to get calendar URLs needed for other operations

  • list_contactsList contactsread-only

    List 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-only

    List 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-only

    List 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 calendar

    Create 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-only

    Batch 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 data

    Update 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 data

    PREFERRED: 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 data

    ADVANCED: 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 data

    PREFERRED: 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 data

    ADVANCED: 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 data

    PREFERRED: 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 data

    ADVANCED: 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
    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)