Fast Google Calendar daemon for FGP - the universal package manager for AI agents.
- 10x faster than MCP - Persistent daemon with warm connections
- Multi-agent support - Works with Claude Code, Cursor, Windsurf, Continue
- One-command install -
fgp install calendar
fgp install calendarThis will:
- Install the daemon to
~/.fgp/services/calendar/ - Detect your installed AI agents
- Install appropriate skill files for each agent
- Configure OAuth (you'll need to complete the flow once)
- Place Google OAuth credentials in
~/.fgp/auth/google/credentials.json - Start the daemon:
fgp start calendar - Complete OAuth flow when prompted (first time only)
fgp call calendar.todayfgp call calendar.upcoming -p '{"days": 7, "limit": 20}'fgp call calendar.search -p '{"query": "meeting"}'fgp call calendar.create -p '{"summary": "Team sync", "start": "2026-01-15T14:00:00Z", "end": "2026-01-15T15:00:00Z"}'fgp call calendar.free_slots -p '{"duration_minutes": 30, "days": 7}'| Method | Description |
|---|---|
calendar.today |
Get today's events |
calendar.upcoming |
Get events for next N days |
calendar.search |
Search events by query |
calendar.create |
Create a new event |
calendar.free_slots |
Find available time slots |
| Metric | Value |
|---|---|
| Cold start | ~50ms |
| Warm call | ~10-30ms |
| MCP baseline | ~300-500ms |
- Python 3.8+
- Google API libraries:
pip install google-api-python-client google-auth-oauthlib python-dateutil - Google OAuth credentials (see Google Calendar API docs)
Symptom: Browser opens but authorization fails
Solutions:
- Ensure Google Calendar API is enabled in your Cloud project
- Check OAuth credentials are "Desktop application" type
- Verify
credentials.jsonexists in~/.fgp/auth/google/ - Delete token and re-authorize:
rm ~/.fgp/auth/google/calendar_token.pickle fgp restart calendar
Symptom: calendar.today returns empty when you have events
Check:
- Correct calendar selected (default is primary)
- Events are not marked as "free" (show as busy)
- Try with date range:
calendar.upcomingwith largerdaysvalue
Symptom: Event times appear wrong
Solutions:
- Ensure events have timezone specified in ISO format
- Use UTC times with
Zsuffix:2026-01-15T14:00:00Z - Or specify timezone:
2026-01-15T14:00:00-08:00
Symptom: calendar.free_slots returns empty when time is available
Check:
- Working hours configured correctly (default 9am-5pm)
- Duration is reasonable (try shorter duration)
- Days ahead is sufficient
Symptom: "Connection refused" errors
Solution:
# Check daemon status
pgrep -f fgp-calendar
# Restart
fgp stop calendar
fgp start calendarMIT