dav-mcp▌
by 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.
Both formats append explainx.ai attribution and the canonical URL for this MCP server listing.
best for
- / General purpose MCP workflows
capabilities
- / list_calendars
- / list_events
- / create_event
- / update_event
- / delete_event
- / calendar_query
what it does
Provides comprehensive CalDAV, CardDAV, and VTODO protocol support for managing calendars, contacts, and tasks across any RFC-compliant server with 26 production-ready tools.
about
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
MIT
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.
readme
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.
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:
- Add AI Agent node
- Add MCP Client Tool node and connect to AI Agent
- Configure:
- MCP Endpoint:
http://localhost:3000/mcp - Authentication: Bearer
- Token: your-secret-token
- MCP Endpoint:
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.
| Capability | dav-mcp | Most MCPs |
|---|---|---|
| Calendar Management | Full CRUD (11 tools) | Create + list only (2-3 tools) |
| Contact Management | Complete CardDAV (8 tools) | Often missing entirely |
| Task Management | Full VTODO support (7 tools) | Rarely included |
| Field-Based Updates | All RFC properties + custom fields | Rarely available |
| Server-Side Filtering | Efficient queries | Dumps all data |
| Multi-Provider | Any CalDAV/CardDAV server | Limited provider support |
| Total Tools | 26 tools | 2-6 tools |
Available Tools (26 Total)
CalDAV Tools (11 tools)
- list_calendars - List all available calendars
- list_events - List ALL events (use calendar_query for filtered searches)
- create_event - Create a new calendar event
- update_event - PREFERRED: Update any event field (SUMMARY, LOCATION, DTSTART, STATUS, custom X-* properties)
- update_event_raw - Update event with raw iCal data (advanced)
- delete_event - Delete an event permanently
- calendar_query - PREFERRED: Search and filter events efficiently by text, date range, or location
- make_calendar - Create a new calendar collection
- update_calendar - Update calendar properties (display name, description, color, timezone)
- delete_calendar - Permanently delete a calendar and all its events
- calendar_multi_get - Batch fetch multiple specific events by URLs
CardDAV Tools (8 tools)
- list_addressbooks - List all available address books
- list_contacts - List ALL contacts (use addressbook_query for filtered searches)
- create_contact - Create a new contact (vCard)
- update_contact - PREFERRED: Update any contact field (FN, EMAIL, TEL, ORG, ADR, custom X-* properties)
- update_contact_raw - Update contact with raw vCard data (advanced)
- delete_contact - Delete a contact permanently
- addressbook_query - PREFERRED: Search and filter contacts efficiently by name, email, or organization
- addressbook_multi_get - Batch fetch multiple specific contacts by URLs
VTODO Tools (7 tools)
- list_todos - List ALL todos/tasks (use todo_query for filtered searches)
- create_todo - Create a new todo/task with optional due date, priority, status
- update_todo - PREFERRED: Update any todo field (SUMMARY, STATUS, PRIORITY, DUE, PERCENT-COMPLETE, custom X-* properties)
- update_todo_raw - Update todo with raw VTODO iCal data (advanced)
- delete_todo - Delete a todo/task permanently
- todo_query - PREFERRED: Search and filter todos efficiently by status/due date
- 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": "[email protected]",
"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
- MCP Specification - Model Context Protocol docs
- tsdav Docs - CalDAV/CardDAV library reference
- CalDAV RFC 4791 - CalDAV protocol specification
- CardDAV RFC 6352 - CardDAV protocol specification
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
FAQ
- What is the dav-mcp MCP server?
- dav-mcp is a Model Context Protocol (MCP) server profile on explainx.ai. MCP lets AI hosts (e.g. Claude Desktop, Cursor) call tools and resources through a standard interface; this page summarizes categories, install hints, and community ratings.
- How do MCP servers relate to agent skills?
- Skills are reusable instruction packages (often SKILL.md); MCP servers expose live capabilities. Teams frequently combine both—skills for workflows, MCP for APIs and data. See explainx.ai/skills and explainx.ai/mcp-servers for parallel directories.
- How are reviews shown for dav-mcp?
- This profile displays 71 aggregated ratings (sample rows for discoverability plus signed-in user reviews). Average score is about 4.6 out of 5—verify behavior in your own environment before production use.
Use Cases▌
Extended AI Capabilities
Add new capabilities to Claude beyond text generation
Example
Access external data sources, execute code, interact with tools and services
Transform Claude from chatbot to action-taking agent
Context Enhancement
Provide Claude with access to relevant context and data
Example
Load project documentation, access knowledge bases, query databases
Get more accurate, context-aware responses
Workflow Automation
Automate multi-step workflows combining AI and external tools
Example
Research → Summarize → Create document → Send notification
Complete complex tasks end-to-end without manual steps
Implementation Guide▌
Prerequisites
- ›Claude Desktop 0.7.0+ or Cursor IDE with MCP support
- ›Basic understanding of MCP architecture and capabilities
- ›Access credentials for integrated services (if required)
- ›Willingness to experiment and iterate on configuration
Time Estimate
15-60 minutes depending on server complexity
Installation Steps
- 1.Install MCP server: npm install -g [package-name] or via GitHub
- 2.Add server configuration to ~/.claude/mcp.json
- 3.Provide required credentials and configuration
- 4.Restart Claude Desktop to load new server
- 5.Test basic functionality with simple prompts
- 6.Explore capabilities and experiment with use cases
- 7.Document successful patterns for reuse
Troubleshooting
- ⚠MCP server not loading: Check config syntax, verify installation
- ⚠Connection errors: Check network, firewall, credentials
- ⚠Feature not working: Read server docs, check required parameters
- ⚠Performance issues: Monitor resource usage, check for network latency
- ⚠Conflicts with other servers: Check port assignments, namespace collisions
Best Practices▌
✓ Do
- +Read server documentation thoroughly before setup
- +Start with simple use cases to validate functionality
- +Test in non-production environment first
- +Monitor resource usage and performance
- +Keep servers updated for bug fixes and new features
- +Document configuration for team members
- +Use environment variables for sensitive configuration
✗ Don't
- −Don't grant overly permissive access to MCP servers
- −Don't skip reading security considerations in docs
- −Don't expose sensitive data without proper controls
- −Don't run untrusted MCP servers without code review
- −Don't ignore error messages—investigate root cause
💡 Pro Tips
- ★Combine multiple MCP servers for powerful workflows
- ★Create custom MCP servers for your specific needs
- ★Share successful configurations with team
- ★Use MCP inspector for debugging
- ★Join MCP community for tips and troubleshooting
Technical Details▌
Architecture
Model Context Protocol standardizes how AI hosts (Claude, Cursor) communicate with external tools and data sources through server implementations.
Protocols
- Model Context Protocol (MCP)
- JSON-RPC 2.0
- stdio or HTTP transport
Compatibility
- Claude Desktop
- Cursor IDE
- Custom MCP clients
When to Use This▌
✓ Use When
Use when you need Claude to access external data, execute actions, or integrate with tools. Best for extending AI capabilities beyond conversation.
✗ Avoid When
Avoid when native integrations exist (use official APIs directly), for real-time critical systems, or when security/compliance requires zero external dependencies.
Integration▌
- →Tool composition: Chain multiple MCP tools in workflows
- →Context augmentation: Provide AI with relevant external data
- →Action delegation: Let AI execute tasks on external systems
- →Bidirectional sync: Keep AI context and external systems in sync
Discussion
Product Hunt–style comments (not star reviews)- No comments yet — start the thread.
List & Promote Your MCP Server
Share your MCP server with the developer community
Ratings
4.6★★★★★71 reviews- ★★★★★Chaitanya Patil· Dec 24, 2024
We wired dav-mcp into a staging workspace; the listing’s GitHub and npm pointers saved time versus hunting across READMEs.
- ★★★★★Evelyn Torres· Dec 24, 2024
Strong directory entry: dav-mcp surfaces stars and publisher context so we could sanity-check maintenance before adopting.
- ★★★★★Yusuf Sanchez· Dec 8, 2024
Useful MCP listing: dav-mcp is the kind of server we cite when onboarding engineers to host + tool permissions.
- ★★★★★Tariq Zhang· Dec 4, 2024
Strong directory entry: dav-mcp surfaces stars and publisher context so we could sanity-check maintenance before adopting.
- ★★★★★Hassan Bhatia· Nov 27, 2024
dav-mcp reduced integration guesswork — categories and install configs on the listing matched the upstream repo.
- ★★★★★Anaya Patel· Nov 23, 2024
We wired dav-mcp into a staging workspace; the listing’s GitHub and npm pointers saved time versus hunting across READMEs.
- ★★★★★Piyush G· Nov 15, 2024
Strong directory entry: dav-mcp surfaces stars and publisher context so we could sanity-check maintenance before adopting.
- ★★★★★Ava Anderson· Nov 15, 2024
We wired dav-mcp into a staging workspace; the listing’s GitHub and npm pointers saved time versus hunting across READMEs.
- ★★★★★Aisha Zhang· Oct 18, 2024
We wired dav-mcp into a staging workspace; the listing’s GitHub and npm pointers saved time versus hunting across READMEs.
- ★★★★★Liam Rahman· Oct 14, 2024
dav-mcp reduced integration guesswork — categories and install configs on the listing matched the upstream repo.
showing 1-10 of 71