Problem
Fantastical supports Calendar Sets (e.g. "Personal", "Work") which group calendars by context. The MCP tools currently have no way to filter by calendar set — only by individual calendar name.
This is a problem when multiple accounts have calendars with the same name. For example, Office 365 forces the default calendar to be named "Calendar" and this cannot be renamed. If a user subscribes to colleagues' O365 calendars, all of them appear as "Calendar", making it impossible to filter to just your own events using the existing calendars parameter.
Current behaviour
get_today / get_upcoming — return all calendars, no filter option
get_availability — accepts a calendars list of calendar names, but cannot distinguish between identically-named calendars across accounts
get_events_by_calendar — accepts a single calendar name, same ambiguity
Expected behaviour
All tools that return or filter events should accept an optional calendar_set parameter (e.g. "Personal", "Work") that filters to only the calendars within that Fantastical calendar set.
Fantastical's AppleScript/URL scheme support for calendar sets could be leveraged for this.
Use case
I use a coaching agent that reads today's schedule to help set realistic daily commitments. It needs to see my meetings, not my colleagues'. The calendar set "Personal" contains exactly the right calendars, but I can't use it as a filter.
Problem
Fantastical supports Calendar Sets (e.g. "Personal", "Work") which group calendars by context. The MCP tools currently have no way to filter by calendar set — only by individual calendar name.
This is a problem when multiple accounts have calendars with the same name. For example, Office 365 forces the default calendar to be named "Calendar" and this cannot be renamed. If a user subscribes to colleagues' O365 calendars, all of them appear as "Calendar", making it impossible to filter to just your own events using the existing
calendarsparameter.Current behaviour
get_today/get_upcoming— return all calendars, no filter optionget_availability— accepts acalendarslist of calendar names, but cannot distinguish between identically-named calendars across accountsget_events_by_calendar— accepts a single calendar name, same ambiguityExpected behaviour
All tools that return or filter events should accept an optional
calendar_setparameter (e.g."Personal","Work") that filters to only the calendars within that Fantastical calendar set.Fantastical's AppleScript/URL scheme support for calendar sets could be leveraged for this.
Use case
I use a coaching agent that reads today's schedule to help set realistic daily commitments. It needs to see my meetings, not my colleagues'. The calendar set "Personal" contains exactly the right calendars, but I can't use it as a filter.