Google Calendar
Create, list, find, and manage events in Google Calendar. Connect your Google account to schedule meetings, check availability, and manage your calendar programmatically.
Requirements
- Install the
orthCLI - Connect your Google Calendar at https://orthogonal.com/dashboard/integrations
- OAuth connection must be active (HTTP 428 response means not connected)
Actions
Create Event
Schedule a new calendar event with attendees and settings.
orth run google-calendar /create-event --body '{
"start_datetime": "2024-03-15T14:00:00",
"summary": "Team Meeting",
"description": "Weekly team sync",
"event_duration_hour": 1
}'
Parameters:
start_datetime(required) - Event start time in "YYYY-MM-DDTHH:MM:SS" format (NO timezone)summary- Event title/summarydescription- Event description/detailslocation- Event location or meeting roomtimezone- IANA timezone (e.g., "America/New_York")attendees- Array of attendee email addressesevent_duration_hour- Duration in hoursevent_duration_minutes- Duration in minutes (0-59 only)recurrence- Recurrence rule (RRULE format)visibility- Event visibility (default, public, private)calendar_id- Specific calendar to create event insend_updates- Send email invitations (true/false)transparency- Show as busy/free (opaque/transparent)exclude_organizer- Exclude organizer from attendee list (true/false)guests_can_modify- Allow guests to modify event (true/false)create_meeting_room- Create Google Meet room (requires paid Workspace)eventType- Event type classificationguestsCanInviteOthers- Allow guests to invite others (true/false)guestsCanSeeOtherGuests- Allow guests to see other attendees (true/false)
List Events
Retrieve events from your calendar within a time range.
orth run google-calendar /list-events --body '{
"calendarId": "primary",
"timeMin": "2024-03-01T00:00:00Z",
"maxResults": 10
}'
Parameters:
calendarId(required) - Calendar ID to query ("primary" for main calendar)timeMin- Start time filter (RFC3339 format)timeMax- End time filter (RFC3339 format)q- Text search queryorderBy- Sort order (startTime, updated)maxResults- Maximum events to returnpageToken- Token for paginationsingleEvents- Expand recurring events (true/false)showDeleted- Include deleted events (true/false)timeZone- Timezone for resultseventTypes- Filter by event typesupdatedMin- Only events updated after this timemaxAttendees- Maximum attendees to return per eventsyncToken- Sync token for incremental syncshowHiddenInvitations- Include hidden invitations (true/false)
Find Event
Search for specific events by query and filters.
orth run google-calendar /find-event --body '{
"query": "team meeting",
"timeMin": "2024-03-01T00:00:00Z"
}'
Parameters:
query- Search query texttimeMin- Search start time (RFC3339 format)timeMax- Search end time (RFC3339 format)calendar_id- Specific calendar to searchorder_by- Sort results (startTime, updated)max_results- Maximum results to returnsingle_events- Expand recurring events (true/false)show_deleted- Include deleted events (true/false)event_types- Filter by event typespage_token- Token for paginationupdated_min- Only events updated after this time
Delete Event
Remove an event from your calendar.
orth run google-calendar /delete-event --body '{
"event_id": "EVENT_ID_HERE"
}'
Parameters:
event_id(required) - Google Calendar event ID to deletecalendar_id- Calendar containing the event (defaults to primary)
Usage Examples
Schedule a 1-hour meeting:
orth run google-calendar /create-event -b '{"start_datetime":"2024-03-15T14:00:00","summary":"Client Call","event_duration_hour":1,"attendees":["client@company.com"]}'
Create recurring weekly meeting:
orth run google-calendar /create-event -b '{"start_datetime":"2024-03-15T10:00:00","summary":"Weekly Standup","event_duration_minutes":30,"recurrence":"RRULE:FREQ=WEEKLY;BYDAY=FR"}'
Check today's events:
orth run google-calendar /list-events -b '{"calendarId":"primary","timeMin":"2024-03-15T00:00:00Z","timeMax":"2024-03-15T23:59:59Z"}'
Search for meetings:
orth run google-calendar /find-event -b '{"query":"team meeting","timeMin":"2024-03-01T00:00:00Z"}'
Cancel an event:
orth run google-calendar /delete-event -b '{"event_id":"abc123def456ghi789"}'
Error Handling
- HTTP 428 - Google Calendar integration not connected. Visit https://orthogonal.com/dashboard/integrations to connect your account
- 400 Bad Request - Invalid datetime format or missing required parameters
- 403 Forbidden - Insufficient calendar permissions
- 404 Not Found - Event or calendar does not exist
- 409 Conflict - Event conflicts with existing event
- 429 Rate Limited - Too many requests, wait before retrying
Tips
- Use "primary" as calendarId for your main calendar
- DateTime format must be "YYYY-MM-DDTHH:MM:SS" without timezone
- Set timezone separately using the timezone parameter
- Duration can be specified in hours and/or minutes
- Recurring events use RRULE syntax (e.g., "RRULE:FREQ=WEEKLY")
- Use timeMin/timeMax in RFC3339 format for filtering
- Google Meet rooms require paid Google Workspace
- Event IDs are returned from create/list operations
Related Skills
- meeting-prep — automated pre-meeting briefings using calendar events
- discovery-debrief — structured debrief after meetings