public-calendar-mcp

public-calendar-mcp

Enables AI agents to search and access public calendar data, supporting iCal, CalDAV, and Google Calendar sources with event search, details, and availability checks.

Category
Visit Server

README

Public Calendar MCP Server

A Model Context Protocol (MCP) server that enables AI agents to search and access public calendar data. Works with Claude Desktop and includes an optional native macOS management app.

Quick Start

1. Install and Build

git clone <repository-url>
cd public-calendar-mcp-server
npm install
npm run build

2. Configure Claude Desktop

Add to your Claude Desktop MCP settings (~/.claude_desktop/mcp_settings.json):

{
  "mcpServers": {
    "public-calendar-mcp": {
      "command": "node",
      "args": ["/absolute/path/to/public-calendar-mcp-server/dist/index.js"],
      "env": {
        "NODE_ENV": "production"
      }
    }
  }
}

3. Restart Claude Desktop

Quit and restart Claude Desktop. You should now have access to calendar tools in Claude!

Features

  • šŸ” Event Search: Search public events by date range, location, and keywords
  • šŸ“… Event Details: Retrieve detailed information about specific events
  • ā° Availability Check: Check time slot availability across calendars
  • šŸ”— Multiple Sources: Support for iCal, CalDAV, and Google Calendar sources
  • šŸ–„ļø macOS App: Optional native GUI for managing calendar sources (macOS only)
  • ⚔ Fast Caching: Intelligent caching for improved performance

Available Tools in Claude

Once configured, you'll have access to these tools in Claude Desktop:

  • check_availability - Check if time slots are free across calendars
  • get_event_details - Get detailed information about specific events
  • list_calendar_sources - View configured calendar sources
  • add_calendar_source - Add new calendar sources
  • remove_calendar_source - Remove calendar sources

How It Works

Claude Desktop launches the MCP server (standard MCP pattern). The server provides:

  • MCP Protocol Interface: For Claude Desktop communication
  • HTTP API Interface: For optional GUI management

Calendar sources are stored in: ~/Library/Application Support/PublicCalendarMCP/config.json

Setup Options

Option 1: Claude Desktop Only (Recommended)

Perfect for most users - just add the MCP configuration above and you're ready to go!

Managing Calendar Sources: Edit ~/Library/Application Support/PublicCalendarMCP/config.json directly or use the MCP tools in Claude.

Option 2: Claude Desktop + macOS GUI App

For macOS users who want a visual interface for managing calendar sources:

  1. Follow the Claude Desktop setup above
  2. Build and run the macOS app: cd macos && ./build.sh
  3. Use the app to visually add/edit/remove calendar sources
  4. Changes are immediately available in Claude Desktop

Both options work with the same calendar sources - the GUI app just provides an easier way to manage them.

šŸ“– See CLAUDE_DESKTOP_CONFIG.md for detailed Claude Desktop setup šŸ“– See SETUP.md for calendar source configuration
šŸ“– See ARCHITECTURE_OVERVIEW.md for how Claude Desktop + macOS app work together

Calendar Source Types

  • iCal (.ics): āœ… No setup required - works with any public iCal URL
  • CalDAV: šŸ”§ Requires server credentials and authentication setup
  • Google Calendar: šŸ”§ Requires Google Cloud API key

Development

Prerequisites

  • Node.js 18+
  • TypeScript
  • macOS (for GUI components)

Setup

npm install
npm run build

Development

npm run dev

Testing

npm test

Project Structure

src/
ā”œā”€ā”€ adapters/          # Calendar source adapters
ā”œā”€ā”€ interfaces/        # Core interfaces
ā”œā”€ā”€ services/          # Business logic services
ā”œā”€ā”€ tools/             # MCP tool implementations
ā”œā”€ā”€ types/             # TypeScript type definitions
ā”œā”€ā”€ utils/             # Utility functions
└── index.ts           # Main entry point

License

MIT

Recommended Servers

playwright-mcp

playwright-mcp

A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.

Official
Featured
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.

Official
Featured
Local
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.

Official
Featured
Local
TypeScript
VeyraX MCP

VeyraX MCP

Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.

Official
Featured
Local
graphlit-mcp-server

graphlit-mcp-server

The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.

Official
Featured
TypeScript
Kagi MCP Server

Kagi MCP Server

An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.

Official
Featured
Python
E2B

E2B

Using MCP to run code via e2b.

Official
Featured
Neon Database

Neon Database

MCP server for interacting with Neon Management API and databases

Official
Featured
Exa Search

Exa Search

A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.

Official
Featured
Qdrant Server

Qdrant Server

This repository is an example of how to create a MCP server for Qdrant, a vector search engine.

Official
Featured