dav-mcp

dav-mcp

PhilflowIO

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

Provides comprehensive CalDAV, CardDAV, and VTODO protocol support for managing calendars, contacts, and tasks across any RFC-compliant server with 26 production-ready tools.

164 views6Local (stdio)

About dav-mcp

dav-mcp is a community-built MCP server published by PhilflowIO that provides AI assistants with tools and capabilities via the Model Context Protocol. Transform AI agents into orchestrating assistants managing calendars, contacts, and tasks It is categorized under auth security. This server exposes 20 tools that AI clients can invoke during conversations and coding sessions.

How to install

You can install dav-mcp in your AI client of choice. Use the install panel on this page to get one-click setup for Cursor, Claude Desktop, VS Code, and other MCP-compatible clients. This server runs locally on your machine via the stdio transport.

License

dav-mcp is released under the MIT license. This is a permissive open-source license, meaning you can freely use, modify, and distribute the software.

Tools (20)

list_calendars

List all available calendars

list_events

List all events in calendars

create_event

Create a new calendar event

update_event

Update any event field (summary, location, date, status, custom properties)

delete_event

Delete an event permanently

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:

{
  "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:

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:
    • MCP Endpoint: http://localhost:3000/mcp
    • Authentication: Bearer
    • Token: your-secret-token

Custom port:

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

Docker

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 (11 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
Server-Side FilteringEfficient queriesDumps all data
Multi-ProviderAny CalDAV/CardDAV serverLimited provider support
Total Tools26 tools2-6 tools

Available Tools (26 Total)

CalDAV Tools (11 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, DTSTART, STATUS, custom X-* properties)
  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

CardDAV Tools (8 tools)

  1. list_addressbooks - List all available address books
  2. list_contacts - List ALL contacts (use addressbook_query for filtered searches)
  3. create_contact - Create a new contact (vCard)
  4. update_contact - PREFERRED: Update any contact field (FN, EMAIL, TEL, ORG, ADR, custom X-* properties)
  5. update_contact_raw - Update contact with raw vCard data (advanced)
  6. delete_contact - Delete a contact permanently
  7. addressbook_query - PREFERRED: Search and filter contacts efficiently by name, email, or organization
  8. addressbook_multi_get - Batch fetch multiple specific contacts by URLs

VTODO Tools (7 tools)

  1. list_todos - List ALL todos/tasks (use todo_query for filtered searches)
  2. create_todo - Create a new todo/task with optional due date, priority, status
  3. update_todo - PREFERRED: Update any todo field (SUMMARY, STATUS, PRIORITY, DUE, PERCENT-COMPLETE, custom X-* properties)
  4. update_todo_raw - Update todo with raw VTODO iCal data (advanced)
  5. delete_todo - Delete a todo/task permanently
  6. todo_query - PREFERRED: Search and filter todos efficiently by status/due date
  7. 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:

{
  "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

Alternatives

Related Skills

Browse all skills
firebase

Firebase gives you a complete backend in minutes - auth, database, storage, functions, hosting. But the ease of setup hides real complexity. Security rules are your last line of defense, and they're often wrong. Firestore queries are limited, and you learn this after you've designed your data model. This skill covers Firebase Authentication, Firestore, Realtime Database, Cloud Functions, Cloud Storage, and Firebase Hosting. Key insight: Firebase is optimized for read-heavy, denormalized data. I

3
senior-backend

Comprehensive backend development skill for building scalable backend systems using NodeJS, Express, Go, Python, Postgres, GraphQL, REST APIs. Includes API scaffolding, database optimization, security implementation, and performance tuning. Use when designing APIs, optimizing database queries, implementing business logic, handling authentication/authorization, or reviewing backend code.

3
backend-security-coder

Expert in secure backend coding practices specializing in input validation, authentication, and API security. Use PROACTIVELY for backend security implementations or security code reviews.

2
django-security

Django security best practices, authentication, authorization, CSRF protection, SQL injection prevention, XSS prevention, and secure deployment configurations.

2
springboot-security

Spring Security best practices for authn/authz, validation, CSRF, secrets, headers, rate limiting, and dependency security in Java Spring Boot services.

2
supabase-rls-policy-generator

This skill should be used when the user requests to generate, create, or add Row-Level Security (RLS) policies for Supabase databases in multi-tenant or role-based applications. It generates comprehensive RLS policies using auth.uid(), auth.jwt() claims, and role-based access patterns. Trigger terms include RLS, row level security, supabase security, generate policies, auth policies, multi-tenant security, role-based access, database security policies, supabase permissions, tenant isolation.

2