Skip to main content
Glama
shadowfax92

MCP Apple Calendars

by shadowfax92
README.md
# MCP Apple Calendars

A Model Context Protocol (MCP) server for interacting with Apple Calendars on macOS. This module allows AI models to access and manipulate calendar data through a standardized interface.

## Prerequisites

- macOS 12.0 or later
- Node.js 16.0 or later
- [Calendar API Bridge](https://github.com/your-username/swift-apple-api) running locally

## Installation

1. Clone this repository
2. Install dependencies:
   ```
   npm install
   ```
3. Build the TypeScript code:
   ```
   npm run build
   ```

## Usage

1. Make sure the Calendar API Bridge is running on port 8080
2. Start the MCP server:
   ```
   npm start
   ```

## Available Tools

The MCP server provides the following tools for AI models:

- `getCalendars`: List all available calendars
- `getCalendarEvents`: Get events from a specific calendar
- `createCalendarEvent`: Create a new event in a calendar
- `updateCalendarEvent`: Update an existing event
- `deleteCalendarEvent`: Delete an event from a calendar

## Date Formats

When creating or updating events, you can use any of the following date formats:

1. ISO8601 with milliseconds and Z timezone (recommended):
   ```
   2025-03-09T10:00:00.000Z
   ```

2. ISO8601 without milliseconds:
   ```
   2025-03-09T10:00:00
   ```

3. ISO8601 with space instead of T:
   ```
   2025-03-09 10:00:00
   ```

4. ISO8601 with forward slashes:
   ```
   2025/03/09 10:00:00
   ```

The Calendar API Bridge has been updated to handle these date formats automatically.

## Development

To run the server in development mode with automatic reloading:

```
npm run dev
```

## License

MIT 

TDQS

C2.2/5.0

Scored across 7 tools

Disambiguation5/5

Every tool has a clearly distinct purpose targeting either calendars or calendar events with specific CRUD operations. The naming makes it obvious whether a tool works on calendars (createCalendar, deleteCalendar, getCalendars) or calendar events (createCalendarEvent, deleteCalendarEvent, getCalendarEvents, updateCalendarEvent), with no ambiguity between them.

Naming Consistency5/5

All tools follow a consistent verb_noun pattern with camelCase styling throughout. The naming is perfectly predictable: create/delete/get/update + Calendar/CalendarEvent, making it easy to understand what each tool does at a glance.

Tool Count5/5

With 7 tools, this is well-scoped for a calendar management server. Each tool earns its place by covering essential CRUD operations for both calendars and calendar events, providing a complete yet manageable interface without being overwhelming or insufficient.

Completeness5/5

The tool set provides complete CRUD coverage for both calendars (create, delete, get) and calendar events (create, delete, get, update). There are no obvious gaps—agents can fully manage the calendar lifecycle, from creating calendars to handling events within them, with no dead ends.

Maintenance

ActivityInactive
ResponsivenessNo issues