Authentication
All protected endpoints require a valid session cookie obtained by logging in. Include credentials in every request (withCredentials: true in fetch / --cookie-jar in curl). Bearer-token API keys are on the Q3 roadmap.
Organizations
An organization is the top-level tenant. All resources (tours, events, bookings) belong to exactly one org.
Calendars
Calendars group tours and events by purpose (TOUR, EVENT, COMMUNITY, PRIVATE_BOOKING). An org typically has one calendar per type.
Tours
Tours are the core product. Each tour has a kind (RECURRING_PUBLIC, FIXED_DAILY, GROUP, PRIVATE_REQUEST, MINIMUM_THRESHOLD), a set of schedule rules, assigned resources, and optional add-ons.
Events
Events are one-off or recurring occurrences on a calendar (concerts, workshops, community meetups). Unlike tours, events have a fixed startsAt/endsAt rather than a recurrence rule.
Bookings
Bookings represent a customer's reservation of a tour slot or an event seat. The state machine handles PENDING → AWAITING_APPROVAL → CONFIRMED → CANCELLED → REFUNDED.
Add-ons
Org-level reusable extras (sack lunches, equipment rental, merchandise) that can be linked to multiple tours and events. Customers select them at booking time; the pricing engine multiplies by quantity.
Resources
Resources are the physical and human assets your org needs to run tours and events — fleet vehicles, team members, and external partners. Each resource has a weekly availability schedule and ad-hoc blocking calendar. The availability engine intersects these when computing open booking slots.
Submissions
Community submissions let external contributors propose events on calendars that have acceptsSubmissions enabled. A moderator reviews and approves or rejects each submission.
Embed
Embed endpoints power the drop-in calendar widget. Use the script snippet from the Dashboard → Embed page, or call these directly for a fully custom integration.
Missing an endpoint? Found a bug? Let us know →