Skip to content

A CalDAV client using Model Context Protocol (MCP) to expose calendar operations as tools for AI assistants.

License

Notifications You must be signed in to change notification settings

dominik1001/caldav-mcp

caldav-mcp

🗓️ A CalDAV Model Context Protocol (MCP) server to expose calendar operations as tools for AI assistants.

Release npm version MIT License code style: prettier MCP Compatible semantic-release: angular

✨ Features

  • Connect to CalDAV servers
  • List calendars
  • List calendar events within a specific timeframe
  • Create calendar events
  • Delete calendar events by UID

Setup

{
  "mcpServers": {
    ...,
    "calendar": {
      "command": "npx",
      "args": [
        "caldav-mcp"
      ],
      "env": {
        "CALDAV_BASE_URL": "<CalDAV server URL>",
        "CALDAV_USERNAME": "<CalDAV username>",
        "CALDAV_PASSWORD": "<CalDAV password>"
      }
    }
  }
}

Development

Quick Start

Run the MCP server in development mode with auto-reload:

npm run dev

This will run the TypeScript code directly with watch mode and automatically load environment variables from .env.

Manual Build

Alternatively, you can compile TypeScript to JavaScript and run it:

  1. Compile:
npx tsc
  1. Run:
node dist/index.js

Available Tools

create-event

Creates a new calendar event.

Parameters:

  • summary: String - Event title/summary
  • start: DateTime string - Event start time
  • end: DateTime string - Event end time

Returns:

  • The unique ID of the created event

list-events

Lists events within a specified timeframe.

Parameters:

  • start: DateTime string - Start of the timeframe
  • end: DateTime string - End of the timeframe
  • calendarUrl: String - URL of the calendar

Returns:

  • A list of events that fall within the given timeframe, each containing:
    • uid: Unique identifier for the event (required for deletion)
    • summary: Event title/summary
    • start: Event start time
    • end: Event end time

delete-event

Deletes an event from the calendar.

Parameters:

  • uid: String - Unique identifier of the event to delete (obtained from list-events)
  • calendarUrl: String - URL of the calendar

Returns:

  • Confirmation message when the event is successfully deleted

list-calendars

Lists all available calendars.

Parameters: none

Returns:

  • List of all available calendars

License

MIT

About

A CalDAV client using Model Context Protocol (MCP) to expose calendar operations as tools for AI assistants.

Topics

Resources

License

Code of conduct

Contributing

Stars

Watchers

Forks

Packages

No packages published

Contributors 6