Fantastical MCP
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| FANTASTICAL_EXCLUDED_CALENDARS | No | Comma-separated list of calendar names to exclude from results. |
Capabilities
Features and capabilities supported by this server
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| extensions | {
"io.modelcontextprotocol/ui": {}
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| get_todayA | Get all calendar events for today, grouped by calendar. |
| get_upcomingB | Get calendar events for the next N days, grouped by date. Args: days: Number of days to look ahead (default 7). |
| get_calendarsA | List all calendars with their event counts. |
| get_eventA | Get full details for a specific event by its ID. Args: event_id: The event ID (shown in parentheses in event listings). |
| search_eventsB | Search events by title, location, notes, or attendees. Args: query: Search term (supports FTS5 syntax: AND, OR, NOT, quotes for phrases). limit: Maximum number of results (default 20). |
| get_events_by_calendarA | Get events from a specific calendar. Args: calendar: Calendar name (e.g. "Work", "Personal"). Use get_calendars to see available names. days: Number of days to look ahead (default 30). |
| get_events_in_rangeA | Get events in an arbitrary date window (past or future), grouped by date. Specify the window in exactly ONE of two ways (not both):
Args: calendar: Optional calendar name to scope to (use get_calendars for names). Omit to query all calendars — note that an event mirrored across several calendars then appears once per calendar; scope to a single calendar to get a clean, duplicate-free list. start: Absolute-mode start date, "YYYY-MM-DD". end: Absolute-mode end date, "YYYY-MM-DD" (inclusive). days_back: Relative-mode window size in days. |
| get_availabilityA | Show free/busy time slots for a specific date. Args: date: Date in YYYY-MM-DD format. calendars: Optional list of calendar names to check. If omitted, checks all calendars. |
| get_recurringA | List upcoming recurring events, optionally filtered by calendar. Useful for understanding the regular schedule (standups, focus blocks, etc.). Args: calendar: Optional calendar name to filter by. Use get_calendars to see available names. limit: Maximum number of results (default 50). |
| get_invitationsB | List pending event invitations that need a response. Args: limit: Maximum number of results (default 20). |
| get_recentA | Show the most recently added or synced calendar events. Useful for seeing what's new on the calendar without knowing specific dates. Args: limit: Maximum number of results (default 10). |
| create_eventA | Create a new event in Fantastical using natural language. Fantastical's parser handles dates, times, locations, and recurrence naturally. Examples: "Lunch with Sara tomorrow at noon at The Crafers Hotel", "Weekly team standup every Monday at 9am". Args: sentence: Natural language event description. calendar: Optional calendar name to create the event in. add_immediately: If True, add without showing confirmation UI (default False). |
| get_today_jsonA | Machine-readable variant of get_today. Returns today's events as a structured dict so programmatic clients (dashboards, automations) don't have to parse the pretty-printed text output. Event times are ISO-8601 strings in the event's original timezone. Response shape:: |
| get_upcoming_jsonA | Machine-readable variant of get_upcoming. Args: days: Number of days to look ahead (default 7). Response shape mirrors get_today_json but covers the next days days. |
| get_event_jsonA | Machine-readable variant of get_event. Returns None-valued fields when a value is absent rather than omitting them, so clients can treat the shape as stable. Args: event_id: The event rowid (as returned by get_today_json etc.). |
| show_dateA | Open Fantastical's mini calendar to a specific date. Args: date: Date in YYYY-MM-DD format. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
Latest Blog Posts
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/jaydenk/fantastical-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server