dav-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| AUTH_METHOD | No | Authentication method, set to 'OAuth' for Google Calendar integration | |
| GOOGLE_USER | No | Your Google email address for OAuth authentication | |
| BEARER_TOKEN | No | Bearer token for HTTP authentication (used when running in HTTP mode) | |
| CALDAV_PASSWORD | No | Your CalDAV/CardDAV password | |
| CALDAV_USERNAME | No | Your CalDAV/CardDAV username | |
| GOOGLE_CLIENT_ID | No | Your Google OAuth client ID | |
| CALDAV_SERVER_URL | No | The URL of the CalDAV/CardDAV server | |
| GOOGLE_CLIENT_SECRET | No | Your Google OAuth client secret | |
| GOOGLE_REFRESH_TOKEN | No | Your Google OAuth refresh token |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| list_calendarsA | List all available calendars from the CalDAV server. Use this to get calendar URLs needed for other operations |
| list_eventsA | 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). |
| create_eventB | Create a new calendar event with title, date, time, optional description and location |
| update_eventA | 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 (details), LOCATION (place), STATUS (TENTATIVE/CONFIRMED/CANCELLED), and any other RFC 5545 property including custom X-* properties (e.g., X-ZOOM-LINK, X-MEETING-ROOM). |
| update_event_rawA | ADVANCED: Update event with raw iCal data. Requires manual iCal formatting - use update_event instead for simple field updates (summary, description). Only use this if you have complete pre-formatted iCal data or need to update advanced iCal properties. |
| delete_eventA | 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. |
| calendar_queryA | ⭐ 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. |
| freebusy_queryA | 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. |
| make_calendarA | Create a new calendar collection on the CalDAV server with optional color, description, timezone, and component types |
| update_calendarA | Update an existing calendar's properties (display name, description, color, timezone). Use this when user asks to "rename calendar", "change calendar color", or "update calendar properties" |
| delete_calendarA | Permanently delete a calendar and all its events. WARNING: This action cannot be undone! Use this when user explicitly asks to "delete calendar" or "remove calendar" |
| calendar_multi_getA | Batch fetch multiple specific calendar events by their URLs. Use when you have exact event URLs and want to retrieve their details |
| list_addressbooksA | List all available address books from the CardDAV server. Use this to get address book URLs needed for other contact operations |
| list_contactsA | 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 |
| create_contactA | Create a new contact (vCard) with name, email, phone, organization, and other details |
| update_contactB | 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_rawA | 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. |
| delete_contactA | 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. |
| addressbook_queryA | ⭐ 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. |
| addressbook_multi_getA | Batch fetch multiple specific contacts by their URLs. Use when you have exact contact URLs and want to retrieve their details |
| list_todosA | 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. |
| create_todoA | 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. |
| update_todoA | 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 property including custom X-* properties. |
| update_todo_rawA | ADVANCED: Update todo with raw VTODO iCal data. Requires manual iCal formatting - use update_todo instead for simple field updates (summary, description, status). Only use this if you have complete pre-formatted VTODO data or need to update advanced iCal properties. |
| delete_todoA | 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. |
| todo_queryA | ⭐ PREFERRED: Search and filter todos efficiently. Use instead of list_todos to conserve tokens. Omit calendar_url to search across ALL calendars automatically. |
| todo_multi_getA | Batch fetch multiple specific todos by their URLs. More efficient than fetching one by one when you have exact todo URLs. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/PhilflowIO/dav-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server