A side-by-side look at the MCP Server Apple Events and Outlook Calendar MCP servers: transport, auth, tools, quality signals, and the config to install either one in Claude, Cursor, Windsurf or VS Code.
Verdict: choose MCP Server Apple Events for workplace & productivity work as a local process; choose Outlook Calendar for workplace & productivity as a local process. You can also run both side by side in one mcpServers block.
reminders_tasks, reminders_subtasks, reminders_lists.list_events, get_event, list_calendars.Rows where the two servers differ are marked.
| Spec | M MCP Server Apple Events | |
|---|---|---|
| Category | Workplace & Productivity | Workplace & Productivity |
| Quality signal | 64/100 · Good | 56/100 · Good |
| Install command | Confirmed | Confirmed |
| Transport | Local subprocess (stdio) | Local subprocess (stdio) |
| Auth | No auth required | Not declared |
| Pricing | Free | Not declared |
| Required env vars | None listed | None listed |
| Verified owner | Community listing | Community listing |
| GitHub stars | 224 | 1 |
| Directory activity | 1 views 0 installs 0 upvotes | 3 views 0 installs 0 upvotes |
| Tools | 5 | 5 |
| Full listing | View MCP Server Apple Events | View Outlook Calendar |
reminders_tasksPriority, tags, subtasks. `startDate` is set via `update`, not `create`; on `read` it scopes the due-date window alongside `endDate`. Cross-list moves unsupported.reminders_subtasksStored in the notes field (human-readable in Reminders.app).reminders_listsRename via `name` → `newName`.calendar_eventsAll-day inferred from date format. Cross-calendar moves unsupported. `span` scopes recurring deletes. `attendees` (update) invites addresses; `occurrenceDate` (delete) excepts one occurrence of a series — both need extra setup, see [Attendees and single occurrences](#attendees-and-single-occurrence…calendar_calendarsWithout a date range, every calendar EventKit reports, with its `source` and write permission. With `startDate`/`endDate`, calendars holding ≥1 event in the window, annotated with an event count.list_eventsList upcoming events from the user's Outlook / Microsoft 365 calendar within a time window. Returns subject, start/end times, location, organizer, all-day flag, and online meeting URL for each event. Defaults to the next 7 days. Use to see what meetings or appointments are scheduled.get_eventGet full details of a single Outlook / Microsoft 365 calendar event by its ID. Returns subject, start/end times, location, organizer, attendees, body, all-day flag, and online meeting URL. Use after list_events to inspect a specific meeting.list_calendarsList all calendars accessible in the user's Outlook / Microsoft 365 account. Returns each calendar's ID, name, owner, edit permission, and whether it is the default calendar. Use to discover which calendars exist.find_meeting_timesReturn the user's busy time windows from their Outlook / Microsoft 365 calendar over the next N days — a lightweight free/busy view. Each window includes start, end, subject, and all-day flag. Use to find when the user is available or to identify scheduling conflicts before proposing a meeting time.get_profileGet the signed-in user's Microsoft 365 / Outlook profile: display name, primary email (mail), and user principal name. Use to confirm whose calendar is connected.Paste either block (or both) into your client config, e.g. claude_desktop_config.json or ~/.cursor/mcp.json. We only show a config when the install command is confirmed.
{
"mcpServers": {
"mcp-server-apple-events": {
"command": "npx",
"args": [
"-y",
"mcp-server-apple-events"
]
}
}
}
{
"mcpServers": {
"outlook-calendar": {
"command": "npx",
"args": [
"-y",
"@pipeworx/mcp-outlook-calendar"
]
}
}
}