Google Calendar
Display, create and modify Google calendar events
Google Calendar API provides full CRUD access to calendar events, attendees, reminders, and free/busy information. You can list upcoming events, create new ones, update existing meetings, check availability, and manage multiple calendars — all via a RESTful interface with OAuth 2.0 authentication.
For OpenClaw agents, Google Calendar is one of the most valuable integrations for a personal assistant. Your agent can check what's coming up in the next few hours during heartbeats, create events from chat commands, alert you before meetings, and even help with scheduling by checking free/busy slots.
Tags: calendar, scheduling
Category: Calendar
Use Cases
- Check upcoming events during heartbeat cycles and alert if a meeting is in < 2 hours
- Create calendar events from Telegram messages ('schedule meeting with X tomorrow at 3pm')
- Provide daily morning briefings with the day's schedule sent to your preferred channel
Tips
- Use singleEvents=true and orderBy=startTime for chronologically sorted upcoming events
- Combine with Calendarific to automatically create holiday events in your calendar
- Set up a morning briefing cron job that reads today's events and sends a summary
Known Issues & Gotchas
- OAuth setup requires a Google Cloud project — same as Gmail API
- Event times must include timezone info or they'll default to UTC
- Recurring events need special handling — use singleEvents=true to expand them
Frequently Asked Questions
Is Google Calendar API hard to set up with OpenClaw?
It requires the same Google Cloud OAuth setup as Gmail API. If you've already set up Gmail OAuth, adding Calendar scope is just one extra permission. First-time setup takes 15-30 minutes.
Can my agent create events with attendees?
Yes. The events.insert endpoint supports adding attendees, setting reminders, locations, descriptions, and conference links (Google Meet). Attendees receive invitation emails automatically.
Does it support reading from multiple calendars?
Yes. You can list all calendars with calendarList.list, then query events from any calendar the authenticated user has access to, including shared calendars.