list-calendarsLABSCO SUMMARY
Calendar work against your own server rather than a vendor's API.
Anything speaking CalDAV is handled the same way, because a calendar is identified by the URL the listing hands back and not by a provider name. All-day events and recurrence are explicit arguments, which is what stops an assistant from approximating them with a long single event.
What it is
A CalDAV client exposed as MCP tools. It connects to a CalDAV server with a base URL, username and password, lists the calendars on it, and reads or writes events in whichever one you address by URL.
What you get
- Every calendar on the server, with both name and URL (list-calendars)
- Events between an ISO 8601 start and end in a named calendar, each carrying uid, summary, start, end and optionally description and location (list-events)
- Events created in a named calendar, with wholeDay for all-day entries and recurrenceRule for repeats (create-event)
- Existing events updated (update-event)
- Events deleted by UID
Requirements
npx caldav-mcp, with the CalDAV server's base URL, a username and a password set in the environment. Calendars are addressed by the calendarUrl that list-calendars returns, so that is always the first call.
Setup effort
One command plus credentials — npx -y caldav-mcp, then supply credentials
USE CASES
Finding out what is on a given day or week
List the calendars once to get their URLs, then ask for events between an ISO 8601 start and end. Each one comes back with its uid, so anything you want to change afterwards is already identified.
Booking something from the conversation you agreed it in
Create the event directly in the right calendar. For a full day set wholeDay rather than guessing at start and end times, which is the difference between a proper all-day entry and a block from midnight to midnight.
Setting up something that repeats
Pass a recurrence rule when you create the event and the server stores one recurring event, so moving or cancelling the series later is one operation instead of fifty.
Moving or cancelling an existing appointment
List the events in the window, take the uid of the one you mean, and update it or delete it. The uid comes from the listing, so nothing has to be looked up in a separate client.
10 tools
Listed in project docs. Your client may show a different list.
list-eventscreate-eventupdate-eventdelete-eventlist-todoscreate-todoupdate-todocomplete-tododelete-todoBEFORE YOU INSTALL
What to know first
Tools you get
10 tools named in the project's documentation.
Requires
- npx on PATH
- CALDAV_PASSWORD in your environment
- CALDAV_BASE_URL in your environment
- CALDAV_USERNAME in your environment
INSTALLATION
Connect your client
Add the block to your client, or run the command directly.
Server setup
Configuration file
{
"mcpServers": {
"caldav-mcp": {
"command": "npx",
"args": [
"-y",
"caldav-mcp"
],
"env": {
"CALDAV_BASE_URL": "<YOUR_CALDAV_BASE_URL>",
"CALDAV_USERNAME": "<YOUR_CALDAV_USERNAME>",
"CALDAV_PASSWORD": "<YOUR_CALDAV_PASSWORD>"
}
}
}
}npx
npx -y caldav-mcp