3.7 KiB
3.7 KiB
Google Calendar Routing Reference
App name: google-calendar
Base URL proxied: www.googleapis.com
API Path Pattern
/google-calendar/calendar/v3/{endpoint}
Common Endpoints
List Calendars
GET /google-calendar/calendar/v3/users/me/calendarList
Get Calendar
GET /google-calendar/calendar/v3/calendars/{calendarId}
Use primary for the user's primary calendar.
List Events
GET /google-calendar/calendar/v3/calendars/primary/events?maxResults=10&orderBy=startTime&singleEvents=true
With time bounds:
GET /google-calendar/calendar/v3/calendars/primary/events?timeMin=2024-01-01T00:00:00Z&timeMax=2024-12-31T23:59:59Z&singleEvents=true&orderBy=startTime
Get Event
GET /google-calendar/calendar/v3/calendars/primary/events/{eventId}
Insert Event
POST /google-calendar/calendar/v3/calendars/primary/events
Content-Type: application/json
{
"summary": "Team Meeting",
"description": "Weekly sync",
"start": {
"dateTime": "2024-01-15T10:00:00",
"timeZone": "America/Los_Angeles"
},
"end": {
"dateTime": "2024-01-15T11:00:00",
"timeZone": "America/Los_Angeles"
},
"attendees": [
{"email": "attendee@example.com"}
]
}
All-day event:
POST /google-calendar/calendar/v3/calendars/primary/events
Content-Type: application/json
{
"summary": "All Day Event",
"start": {"date": "2024-01-15"},
"end": {"date": "2024-01-16"}
}
Update Event
PUT /google-calendar/calendar/v3/calendars/primary/events/{eventId}
Content-Type: application/json
{
"summary": "Updated Meeting Title",
"start": {"dateTime": "2024-01-15T10:00:00Z"},
"end": {"dateTime": "2024-01-15T11:00:00Z"}
}
Patch Event (partial update)
PATCH /google-calendar/calendar/v3/calendars/primary/events/{eventId}
Content-Type: application/json
{
"summary": "New Title Only"
}
Delete Event
DELETE /google-calendar/calendar/v3/calendars/primary/events/{eventId}
Quick Add Event (natural language)
POST /google-calendar/calendar/v3/calendars/primary/events/quickAdd?text=Meeting+with+John+tomorrow+at+3pm
Free/Busy Query
POST /google-calendar/calendar/v3/freeBusy
Content-Type: application/json
{
"timeMin": "2024-01-15T00:00:00Z",
"timeMax": "2024-01-16T00:00:00Z",
"items": [{"id": "primary"}]
}
Notes
- Authentication is automatic - the router injects the OAuth token
- Use
primaryas calendarId for the user's main calendar - Times must be in RFC3339 format (e.g.,
2026-01-15T10:00:00Z) - For recurring events, use
singleEvents=trueto expand instances orderBy=startTimerequiressingleEvents=true