MCP Calendar Tools
# MCP Calendar Tools
This Model Context Protocol (MCP) server provides tools for reading and managing calendar events using local `.ics` (iCalendar) files. It is completely offline and does not require complex OAuth setups with Google/Apple.
## Overview
The `mcp-calendar` server exposes these tools:
1. `get_schedule`: Reads the `.ics` file and lists events for a specific date.
2. `create_event`: Creates a new event and appends it to your `.ics` file.
## Prerequisites
1. **Node.js** installed (v18 or higher recommended).
2. **Calendar File**: Place an exported calendar file named `calendar.ics` in the root of this project (or specify the path in your config).
## Steps to Run
1. **Install Dependencies:**
```bash
npm install
```
2. **Build the Project:**
```bash
npm run build
```
3. **Configure MCP:**
Add this server to your Claude Desktop or Antigravity MCP configuration file:
```json
{
"mcpServers": {
"calendar": {
"command": "node",
"args": ["/absolute/path/to/mcp-calendar/build/index.js"],
"env": {
"CALENDAR_FILE_PATH": "/absolute/path/to/your/calendar.ics"
}
}
}
}
```
*(Note: Adjust the absolute path to point to where you saved this folder. If `CALENDAR_FILE_PATH` is omitted, it defaults to `./calendar.ics` in the project root).*
4. **Restart your MCP Client.** You can now ask the AI to "Check my schedule for tomorrow" or "Add a meeting at 3 PM".
TDQS
Scored across 2 tools
The two tools serve clearly distinct purposes: one reads/queries events while the other creates new ones. There is no ambiguity between them, and each has a single unambiguous responsibility.
Both tools follow a consistent verb_noun pattern (get_schedule, create_event), using snake_case throughout. Minor inconsistency exists in noun phrasing (schedule vs event) but the pattern is otherwise predictable and readable.
Two tools feels very thin for a calendar server. A calendar domain typically warrants at least update/delete operations and date-range queries, making this extremely sparse for its apparent purpose.
The surface is severely incomplete. It covers only retrieving events for a single date and creating an event, but lacks update_event, delete_event, list_all_events, searching by range, and any management capabilities. This severely limits what agents can accomplish.