list_calendarsLABSCO SUMMARY
Reminders and tasks, not just calendar events — with an undo behind every write.
Most calendar servers stop at events; this one drives Reminders too, including hashtag tags, tag search and usage counts that Reminders.app itself exposes no public API for. Writes are checked on the way in — duplicate detection, conflict checks, dry-run previews on batch deletes — and undo walks back the last operation when one gets through anyway.
What it is
A Swift MCP server built on EventKit, the framework the macOS Calendar and Reminders apps use themselves. It reads and writes both — calendars, events, reminders and their tags — against whatever accounts your Mac already syncs: iCloud, Google, Outlook/Exchange, CalDAV or local.
What you get
- Calendars and reminder lists together:
list_calendars, pluscreate_calendar,update_calendarto rename or recolour, anddelete_calendar - Events with alerts, location, URL and a per-event timezone —
create_event,update_event,delete_event, andlist_eventswith filter, sort and limit - Reminders as first-class records, not an afterthought:
create_reminder,complete_reminder,search_remindersby keyword or tag,list_reminder_tagswith usage counts - Quick ranges instead of date arithmetic —
list_events_quicktakestoday,tomorrow,this_week,next_7_days - Checks before a write lands:
check_conflictsover a time range,find_duplicate_eventsacross calendars - Batch work with a preview —
create_events_batch,move_events_batch, anddelete_events_batchwith dry-run undo,redoandundo_historyover the most recent calendar and reminder operations- Same-name calendars told apart by source:
calendar_sourcepicks the iCloud “Work” over the Google one
Requirements
macOS 14.0 or later, and no account or key — it reaches your calendars through the ones macOS already holds. The registry entry io.github.PsychQuant/che-ical-mcp ships an .mcpb bundle over stdio for Claude Desktop; Claude Code can add the repo as a plugin marketplace, or register the standalone CheICalMCP binary. On first use macOS asks for Calendar and Reminders access, and that dialog is attributed to the app that launched the server — under Terminal or iTerm2 it appears, under VS Code it may not.
Setup effort
One command — mkdir -p ~/bin && curl -L https://github.com/PsychQuant/che-ical-mcp/releases/latest/download/CheICalMCP -o ~/bin/CheICalMCP && chmod +x ~/bin/CheICalMCP
USE CASES
Booking a meeting without double-booking yourself
Check the proposed window for overlaps first, then create the event in the calendar you name.
Clearing out a calendar you no longer use
Preview what a date-bounded delete would remove, and move anything worth keeping to another calendar first.
Running the week off the reminders you actually tagged
Pull every tag with its usage count, then search reminders by the one that matters this week.
Building a travel itinerary across timezones
Create each leg with its own IANA timezone so departure and check-in read correctly wherever you are.
Taking back a bulk change that went wrong
List the operations still undoable with their timestamps, then reverse the one you meant.
29 tools
Listed in project docs. Your client may show a different list.
create_calendardelete_calendarupdate_calendarlist_eventscreate_eventupdate_eventdelete_eventlist_reminderscreate_reminderupdate_remindercomplete_reminderdelete_remindersearch_reminderslist_reminder_tagscleanup_completed_reminderssearch_eventslist_events_quickcreate_events_batchcheck_conflictscopy_eventmove_events_batchdelete_events_batchfind_duplicate_eventscreate_reminders_batchdelete_reminders_batchundoredoundo_historyBEFORE YOU INSTALL
What to know first
Tools you get
29 tools named in the project's documentation.
INSTALLATION
Connect your client
Server setup
mkdir -p ~/bin && curl -L https://github.com/PsychQuant/che-ical-mcp/releases/latest/download/CheICalMCP -o ~/bin/CheICalMCP && chmod +x ~/bin/CheICalMCPMCP Clients
Claude Code — plugin
claude plugin marketplace add PsychQuant/che-ical-mcp
claude plugin install che-ical-mcp@che-ical-mcpClaude Code — standalone
claude mcp add --scope user --transport stdio che-ical-mcp -- ~/bin/CheICalMCPClaude Desktop — MCPB
download the latest che-ical-mcp-<YOUR_VERSION>.mcpb from Releases, double-click, and restart Claude Desktop
Claude Desktop — manual config
Download the binary to that path first: curl -L https://github.com/PsychQuant/che-ical-mcp/releases/latest/download/CheICalMCP -o /usr/local/bin/che-ical-mcp && chmod +x /usr/local/bin/che-ical-mcp
{
"mcpServers": {
"che-ical-mcp": {
"command": "/usr/local/bin/che-ical-mcp"
}
}
}