trackmcp
Back to directory

Transform AI agents into orchestrating assistants managing calendars, contacts, and tasks

31 stars JavaScriptOthers Updated Aug 14, 2026
ai-agentscaldavcalendarcarddavclaudecontactsmcpmodel-context-protocoln8ntasksvtodo

Documentation

dav-mcp

Give your AI agents the power of organization — Transform them into orchestrating assistants managing calendars, contacts, and tasks.

Built on 26 production-ready tools spanning CalDAV, CardDAV, and VTODO protocols.

License: MIT
npm version

Quick Start

Claude Desktop / Cursor (Local)

Add to your MCP config file:

json
{
  "mcpServers": {
    "dav-mcp": {
      "command": "npx",
      "args": ["-y", "dav-mcp"],
      "env": {
        "CALDAV_SERVER_URL": "https://dav.example.com",
        "CALDAV_USERNAME": "your_username",
        "CALDAV_PASSWORD": "your_password"
      }
    }
  }
}

Config file locations:

  • macOS: `~/Library/Application Support/Claude/claude_desktop_config.json`
  • Windows: `%APPDATA%\Claude\claude_desktop_config.json`
  • Linux: `~/.config/Claude/claude_desktop_config.json`

Restart Claude Desktop after adding the configuration.


n8n (Remote HTTP)

Start the HTTP server:

bash
CALDAV_SERVER_URL=https://dav.example.com \
CALDAV_USERNAME=your_username \
CALDAV_PASSWORD=your_password \
BEARER_TOKEN=your-secret-token \
npx dav-mcp --http

Then in n8n:

1. Add AI Agent node

2. Add MCP Client Tool node and connect to AI Agent

3. Configure:

    Custom port:

    bash
    npx dav-mcp --http --port=8080

    Docker

    bash
    git clone https://github.com/PhilflowIO/dav-mcp.git
    cd dav-mcp
    cp .env.example .env
    # Edit .env with your credentials
    docker-compose up

    The Orchestration

    When partial tools force your AI to improvise, complete tools let it execute precise operations across all components.

    Capabilitydav-mcpMost MCPs
    Calendar ManagementFull CRUD (12 tools)Create + list only (2-3 tools)
    Contact ManagementComplete CardDAV (8 tools)Often missing entirely
    Task ManagementFull VTODO support (7 tools)Rarely included
    Field-Based UpdatesAll RFC properties + custom fieldsRarely available
    Free/BusyWorks on every server (client-side)Native REPORT, unsupported by most
    Server-Side FilteringEfficient queriesDumps all data
    Multi-ProviderAny CalDAV/CardDAV serverLimited provider support
    Total Tools27 tools2-6 tools

    Available Tools (27 Total)

    CalDAV Tools (12 tools)

    1. list_calendars - List all available calendars

    2. list_events - List ALL events (use calendar_query for filtered searches)

    3. create_event - Create a new calendar event

    4. update_event - PREFERRED: Update any event field (SUMMARY, LOCATION, STATUS, custom X-* properties); move or convert an event with start_date/end_date/all_day

    5. update_event_raw - Update event with raw iCal data (advanced)

    6. delete_event - Delete an event permanently

    7. calendar_query - PREFERRED: Search and filter events efficiently by text, date range, or location

    8. make_calendar - Create a new calendar collection

    9. update_calendar - Update calendar properties (display name, description, color, timezone)

    10. delete_calendar - Permanently delete a calendar and all its events

    11. calendar_multi_get - Batch fetch multiple specific events by URLs

    12. freebusy_query - Find free and busy time in a range ("when am I free?"), calculated client-side

    CardDAV Tools (8 tools)

    12. list_addressbooks - List all available address books

    13. list_contacts - List ALL contacts (use addressbook_query for filtered searches)

    14. create_contact - Create a new contact (vCard)

    15. update_contact - PREFERRED: Update any contact field (FN, EMAIL, TEL, ORG, ADR, custom X-* properties)

    16. update_contact_raw - Update contact with raw vCard data (advanced)

    17. delete_contact - Delete a contact permanently

    18. addressbook_query - PREFERRED: Search and filter contacts efficiently by name, email, or organization

    19. addressbook_multi_get - Batch fetch multiple specific contacts by URLs

    VTODO Tools (7 tools)

    20. list_todos - List ALL todos/tasks (use todo_query for filtered searches)

    21. create_todo - Create a new todo/task with optional due date, priority, status

    22. update_todo - PREFERRED: Update any todo field (SUMMARY, STATUS, PRIORITY, DUE, PERCENT-COMPLETE, custom X-* properties)

    23. update_todo_raw - Update todo with raw VTODO iCal data (advanced)

    24. delete_todo - Delete a todo/task permanently

    25. todo_query - PREFERRED: Search and filter todos efficiently by status/due date

    26. todo_multi_get - Batch fetch multiple specific todos by URLs


    Real-World Applications

    n8n Automation Workflows

    • Meeting Management: "Show me all Friday meetings" → calendar_query with date filter returns only relevant events
    • Contact Search: "Find everyone at Google" → addressbook_query with org filter finds matches efficiently
    • Task Reporting: "Show overdue high-priority tasks" → todo_query with filters returns specific results
    • Scheduled Cleanup: Daily cron job deletes completed tasks using targeted queries

    Claude Desktop Integration

    • Quick Event Creation: "Create team meeting tomorrow 2 PM" → create_event executes immediately
    • Contact Lookup: "What's Sarah's email?" → addressbook_query with name filter finds contact
    • Calendar Overview: "What's on my calendar next week?" → calendar_query with date range shows events
    • Calendar Management: "Create a new calendar called Project Luna" → make_calendar creates collection

    Works Across All Major Providers

    Works with any CalDAV/CardDAV server that follows RFC 4791 and RFC 6352:

    • Nextcloud - Full support
    • Baikal - Full support
    • Radicale - Full support
    • iCloud - Works with app-specific password
    • Any RFC-compliant server - Standard protocol support

    Google Calendar (OAuth2)

    For Google Calendar, use OAuth2 authentication:

    json
    {
      "mcpServers": {
        "dav-mcp": {
          "command": "npx",
          "args": ["-y", "dav-mcp"],
          "env": {
            "AUTH_METHOD": "OAuth",
            "GOOGLE_USER": "your@gmail.com",
            "GOOGLE_CLIENT_ID": "your-client-id",
            "GOOGLE_CLIENT_SECRET": "your-client-secret",
            "GOOGLE_REFRESH_TOKEN": "your-refresh-token"
          }
        }
      }
    }

    Security

    • Input Validation: All inputs validated with Zod schemas before execution
    • Rate Limiting: 100 requests/minute per session (HTTP mode)
    • Bearer Auth: Token authentication for HTTP transport
    • No Credential Storage: Pass-through only, never logged or cached
    • Structured Logging: Audit trail with request IDs, no PII exposure
    • CORS Protection: Whitelist origins, block cross-site attacks

    Documentation


    Contributing

    Pull requests are welcome! Please read CONTRIBUTING.md for guidelines.


    License

    MIT License - see LICENSE for details


    Acknowledgments

    Built with:

    • **tsdav** - Excellent TypeScript CalDAV/CardDAV library
    • **tsdav-utils** - Field-agnostic utility layer for RFC-compliant field updates
    • **MCP SDK** - Model Context Protocol by Anthropic
    • **ical.js** - RFC-compliant iCalendar parser

    Questions? Issues? Create a GitHub issue


    *Built for AI agents managing calendars, contacts, and tasks*

    Frequently asked questions

    What is dav-mcp?

    dav-mcp is Transform AI agents into orchestrating assistants managing calendars, contacts, and tasks

    How do I install dav-mcp?

    Open the GitHub repository and follow its README. Most MCP servers are added to your client's MCP config, then called by your agent.

    Is dav-mcp open source?

    Yes — it is hosted on GitHub at https://github.com/PhilflowIO/dav-mcp and has 31 stars.

    Related MCP tools

    atlassianatlassian-mcp-server

    Official remote MCP server for Atlassian. Securely connect Jira, Confluence, Jira Service Management, Bitbucket, and Compass to Claude, ChatGPT, Cursor, VS Code, and other AI tools using OAuth 2.1 or API tokens.

    1,015 JavaScript
    aiai-agentsatlassian+17
    firecrawlfirecrawl-mcp-server

    🔥 Official Firecrawl MCP Server - Adds powerful web scraping and search to Cursor, Claude and any other LLM clients.

    7,393 JavaScript
    batch-processingclaudecontent-extraction+11
    pipeboard-cometa-ads-mcp

    Meta Ads (Facebook/Instagram) MCP server for Claude, ChatGPT, Perplexity & Cursor — the Meta node of Pipeboard’s 5-platform family (+ Google, TikTok, Snap, Reddit). Hosted remote MCP, badged Meta Business Partner, free plan — no self-hosting required.

    1,233 Python
    advertisingai-agentschatgpt+7
    riponcmprojectmem

    Open-source coding agent memory. Records issues, attempts, fixes and decisions, then warns your agent before it repeats an approach that already failed. Native MCP server for Claude Code, Cursor, Antigravity and Codex. 100% local, no cloud, no telemetry. MIT.

    796 Python
    ai-agentsai-memoryai-tools+17
    sonnylazuardicursor-talk-to-figma-mcp

    CTTF: MCP integration between Cursor and Figma, allowing Cursor Agentic AI to communicate with Figma for reading designs and modifying them programmatically.

    5,539 JavaScript
    agentagenticagentic-ai+11
    mendableaifirecrawl-mcp-server

    🔥 Official Firecrawl MCP Server - Adds powerful web scraping and search to Cursor, Claude and any other LLM clients. JavaScript-based implementation.

    4,847 JavaScript
    batch-processingclaudecontent-extraction+11

    Run your own MCP server? See who uses it and what to fix.

    Measure it with TrackMCP