Track MCP LogoTrack MCP
Track MCP LogoTrack MCP

The world's largest repository of Model Context Protocol servers. Discover, explore, and submit MCP tools.

Product

  • Categories
  • Top MCP
  • New & Updated
  • Submit MCP

Company

  • About

Legal

  • Privacy Policy
  • Terms of Service
  • Cookie Policy

© 2026 TrackMCP. All rights reserved.

Built with ❤️ by Krishna Goyal

    Caldav Mcp

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

    33 stars
    TypeScript
    Updated Oct 19, 2025
    caldav
    mcp
    mcp-server
    typescript

    Table of Contents

    • ✨ Features
    • Setup
    • Development
    • Quick Start
    • Manual Build
    • Available Tools
    • list-calendars
    • list-events
    • create-event
    • update-event
    • delete-event
    • License

    Table of Contents

    • ✨ Features
    • Setup
    • Development
    • Quick Start
    • Manual Build
    • Available Tools
    • list-calendars
    • list-events
    • create-event
    • update-event
    • delete-event
    • License

    Documentation

    caldav-mcp

    ✨ Features

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

    Setup

    code
    {
      "mcpServers": {
        ...,
        "calendar": {
          "command": "npx",
          "args": [
            "caldav-mcp"
          ],
          "env": {
            "CALDAV_BASE_URL": "",
            "CALDAV_USERNAME": "",
            "CALDAV_PASSWORD": ""
          }
        }
      }
    }

    Development

    Quick Start

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

    bash
    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:

    bash
    npx tsc

    2. Run:

    bash
    node dist/index.js

    Available Tools

    list-calendars

    List all calendars returning both name and URL

    Parameters: none

    Returns:

    • List of all available calendars

    list-events

    List all events between start and end date in the calendar specified by its URL

    Parameters:

    • start: string — Start date (ISO 8601)
    • end: string — End date (ISO 8601)
    • calendarUrl: string

    Returns:

    • A list of events that fall within the given timeframe, each containing uid, summary, start, end, and optionally description and location

    create-event

    Creates an event in the calendar specified by its URL. For all-day events, set wholeDay to true. For a single-day all-day event, use start and end datetimes on the same calendar date; they do not need to be identical timestamps.

    Parameters:

    • summary: string
    • start: string — Start datetime (ISO 8601)
    • end: string — End datetime (ISO 8601)
    • wholeDay: boolean (optional) — Create as a whole-day event
    • calendarUrl: string
    • description: string (optional)
    • location: string (optional)
    • recurrenceRule: object (optional)
    • freq: enum (DAILY | WEEKLY | MONTHLY | YEARLY) (optional)
    • interval: number (optional)
    • count: number (optional)
    • until: string (optional)
    • byday: array of string (optional)
    • bymonthday: array of number (optional)
    • bymonth: array of number (optional)

    Returns:

    • The unique ID of the created event

    update-event

    Updates an existing event in the calendar specified by its URL. Only provided fields are changed. For a one-day full-day event, set wholeDay to true and set start and end to the same calendar day.

    Parameters:

    • uid: string — Unique identifier of the event to update (obtained from list-events)
    • calendarUrl: string
    • summary: string (optional)
    • start: string (optional)
    • end: string (optional)
    • wholeDay: boolean (optional) — Update whether this is a whole-day event
    • description: string (optional)
    • location: string (optional)
    • recurrenceRule: object (optional)
    • freq: enum (DAILY | WEEKLY | MONTHLY | YEARLY) (optional)
    • interval: number (optional)
    • count: number (optional)
    • until: string (optional)
    • byday: array of string (optional)
    • bymonthday: array of number (optional)
    • bymonth: array of number (optional)

    Returns:

    • The unique ID of the updated event

    delete-event

    Deletes an event in the calendar specified by its URL

    Parameters:

    • uid: string — Unique identifier of the event to delete (obtained from list-events)
    • calendarUrl: string

    Returns:

    • Confirmation message when the event is successfully deleted

    License

    MIT

    Similar MCP

    Based on tags & features

    • MC

      Mcp Open Library

      TypeScript·
      42
    • MC

      Mcp Ipfs

      TypeScript·
      11
    • LI

      Liveblocks Mcp Server

      TypeScript·
      11
    • AN

      Anilist Mcp

      TypeScript·
      57

    Trending MCP

    Most active this week

    • PL

      Playwright Mcp

      TypeScript·
      22.1k
    • SE

      Serena

      Python·
      14.5k
    • MC

      Mcp Playwright

      TypeScript·
      4.9k
    • MC

      Mcp Server Cloudflare

      TypeScript·
      3.0k
    View All MCP Servers

    Similar MCP

    Based on tags & features

    • MC

      Mcp Open Library

      TypeScript·
      42
    • MC

      Mcp Ipfs

      TypeScript·
      11
    • LI

      Liveblocks Mcp Server

      TypeScript·
      11
    • AN

      Anilist Mcp

      TypeScript·
      57

    Trending MCP

    Most active this week

    • PL

      Playwright Mcp

      TypeScript·
      22.1k
    • SE

      Serena

      Python·
      14.5k
    • MC

      Mcp Playwright

      TypeScript·
      4.9k
    • MC

      Mcp Server Cloudflare

      TypeScript·
      3.0k