MCP server for Fantastical - the powerful calendar app for macOS.
- Natural language event creation - Use Fantastical's powerful natural language parsing ("Meeting with John tomorrow at 3pm")
- View your schedule - Check today's events or upcoming appointments without leaving your conversation
- Quick calendar access - Jump to any date in Fantastical instantly
- Calendar-aware AI - Let Claude understand your availability and schedule context
- Zero configuration - Works with your existing Fantastical and Calendar setup
| Category | Capabilities |
|---|---|
| Event Creation | Create events using natural language, specify calendar, add notes |
| Schedule Viewing | View today's events, upcoming events for any number of days |
| Navigation | Open Fantastical to specific dates |
| Search | Search events by title, location, or notes |
| Calendar Management | List all available calendars |
- macOS (Fantastical is macOS-only)
- Node.js 18+
- Fantastical installed
- Calendar access permissions for Terminal/Claude
npx mcp-fantasticalgit clone https://github.com/aplaceforallmystuff/mcp-fantastical.git
cd mcp-fantastical
npm install
npm run buildNo API keys required - this server uses AppleScript to communicate with Fantastical and the Calendar app.
Add to your Claude Desktop config file:
macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
{
"mcpServers": {
"fantastical": {
"command": "npx",
"args": ["-y", "mcp-fantastical"]
}
}
}Add to ~/.claude.json:
{
"mcpServers": {
"fantastical": {
"command": "npx",
"args": ["-y", "mcp-fantastical"]
}
}
}On first run, you may need to grant the following permissions:
Accessibility (for event creation via URL scheme):
- System Preferences → Privacy & Security → Accessibility
- Add Terminal (or your terminal app) to the allowed list
Full Calendar Access (for reading events):
- System Preferences → Privacy & Security → Calendars
- Grant "Full Calendar Access" to your terminal app or the process running the MCP server
Note: On macOS Sonoma and later, reading calendar events via AppleScript may fail with permission errors when running in subprocess contexts (e.g., MCP servers spawned by Claude). The native EventKit helper resolves this by using a different permission model.
- "Schedule a meeting with the team tomorrow at 2pm"
- "Add dentist appointment Friday at 10am to my Personal calendar"
- "Create a recurring standup every Monday at 9am"
- "Block off next Tuesday afternoon for deep work"
- "What's on my calendar today?"
- "Show me my schedule for the next week"
- "What meetings do I have tomorrow?"
- "Am I free on Friday afternoon?"
- "Open my calendar to next Monday"
- "Show me December 25th in Fantastical"
- "Jump to next week in my calendar"
- "Find all meetings with Sarah"
- "Search for dentist appointments"
- "Look up project review meetings"
| Tool | Description |
|---|---|
fantastical_create_event |
Create an event using natural language parsing |
fantastical_get_today |
Get today's calendar events |
fantastical_get_upcoming |
Get upcoming events for specified number of days |
fantastical_show_date |
Open Fantastical to a specific date |
fantastical_get_calendars |
List all available calendars |
fantastical_search |
Search for events by query |
# Watch mode for development
npm run watch
# Build TypeScript
npm run build
# Run locally
node dist/index.jsGrant accessibility permissions:
- Open System Preferences → Privacy & Security → Accessibility
- Click the lock to make changes
- Add Terminal (or your terminal app) and enable it
This occurs when the MCP server runs in a subprocess context (e.g., spawned by Claude Code or other MCP clients). macOS TCC permissions don't properly inherit through process chains.
Solutions:
- Recommended: The native EventKit helper (
dist/native/fantastical-helper) handles this automatically. Rebuild withnpm run buildto compile it. - Grant "Full Calendar Access" in System Settings → Privacy & Security → Calendars to the terminal app
- If running from source, ensure the Swift helper is compiled:
npm run build:native
This server requires macOS because Fantastical is a macOS application. It uses AppleScript to communicate with Fantastical and the Calendar app.
- Ensure Fantastical is syncing with iCloud/Calendar
- Check that Calendar.app has access to the same calendars
- Verify the event was created in the correct calendar
- Grant Full Calendar Access (see above)
- Ensure Fantastical is installed
- Try opening Fantastical manually first
- Check that URL schemes are enabled in Fantastical preferences
MIT - see LICENSE for details.
- Fantastical - Official Fantastical website
- Model Context Protocol - MCP specification
- GitHub Repository