Skip to main content
Retrieve booking-focused calendar data and occupancy counts for display in calendar UIs. This endpoint belongs to the Bookings surface, even though the aggregate route itself lives in the misc path file. For general conventions, see JSON-API Conventions. For availability search, see Availability & Booking Search.

Prerequisites

  • At least one resource with a configured schedule
  • Public endpoint — no authentication required for basic usage

Unified Calendar View

Request path documentation:
  • paths/public/misc.yaml for GET /api/v1/calendar-events
The main endpoint aggregates multiple data sources into a single response:

Parameters

Multiple Resources

Query multiple resources in a single request:

Event Types

The response contains events of different types, combined from booking and availability data sources:

Response Structure

Timeslot-backed events can include timeslot_id. Use it to fetch the canonical timeslot resource through the admin timeslot endpoints, open the matching editor, or reconcile calendar cards with resource_info and allocation state.

Capacity-Based Rendering

The API adapts its response based on resource capacity:
  • Small resources (capacity ≤ 25): Returns individual booking events with customer details. Use these to render detailed calendar entries.
  • Large resources (capacity > 25): Returns booking_count events with aggregated occupancy numbers. Use these for heatmap or occupancy bar display.

Booking Detail Preview

For calendar detail views, use the booking preview endpoint to get a summary of a specific booking without fetching the full resource:

Common Patterns

Daily Calendar View

Weekly Multi-Resource View

Correlate a Calendar Event to Timeslot CRUD

When an event includes timeslot_id, you can jump from the aggregate calendar response to the admin timeslot resource:
For the full admin workflow, see Admin Timeslot Management.

Common Errors