Read booking analytics
How the booking pages did over a window, and what is still to come.
Runs the real call on your workspace.
GET /bookings/analytics
How the booking pages did over a window, and what is still to come.
Example
Needs calendar:read. days looks back from 1 to 1095 days and defaults to 30, minutes wins over it, grain is minute, hour or day, and offsetMinutes cuts the days where the reader lives. pageIds narrows everything to some pages.
curl "$OE/bookings/analytics?days=30&offsetMinutes=120" -H "$AUTH"{ "object": "booking_analytics", "pageId": null, "pageIds": [], "since": "2026-10-04T22:00:00.000Z", "until": "2026-11-02T08:00:00.000Z", "grain": "day", "offsetMinutes": 120, "totals": { "booked": 12, "confirmed": 9, "pending": 1, "expired": 0, "declined": 0, "cancelled": 2, "cancelledByGuest": 2, "cancelledByHost": 0, "rescheduled": 3, "minutesBooked": 330, "cancellationRate": 0.1667 }, "upcoming": { "confirmed": 4, "waiting": 1, "nextStart": "2026-11-03T09:00:00.000Z" }, "series": [{ "bucket": "2026-10-28", "booked": 3, "cancelled": 1 }], "pages": [{ "pageId": "bkp_5c1e9a7b3d2f48e6a0b4c7d1", "name": "Intro call", "booked": 12, "cancelled": 2 }], "weekdays": [{ "weekday": 0, "meetings": 0 }, { "weekday": 1, "meetings": 4 }]}A booking counts in the window it was made in, whatever its meeting time. confirmed, pending, expired, declined and cancelled split booked by what became of each booking, so they add up to it.
upcoming ignores the window: it counts the confirmed meetings that have not ended and the requests still waiting, and gives when the next meeting starts.
series leaves out buckets with nothing in them, pages lists at most 10 pages with the most bookings first, and weekdays always holds seven entries from Sunday (0) to Saturday (6).
A page in pageIds the person does not own answers 404 booking_page_not_found.
Google Workspace