Booking
Discovery and matching mean nothing without completion.
The job
Traveller
Job: Make this actually happen
I've found what I want. Now I need to secure it. Check availability, hold it while I confirm details, complete the booking.
Venue
Job: Get confirmed revenue
Interest doesn't pay bills. I need bookings that convert to stays. Holds that become confirmations. Confirmed revenue I can plan around.
What's broken today
Discovery without completion is just window shopping. Today's agents can find you a hotel but can't book it—you get handed off to a website to start from scratch.
For travellers:
- Agent finds options, then you're on your own
- Re-enter the same details on every site
- No way to know what's actually available until you click through
For venues:
- Different APIs for every channel
- Bookings from agents require manual processing
- No standard for how an AI should book a room
What changes with agents
Agents need to complete transactions, not just recommend them. This requires a standard protocol that every venue can implement and every agent can speak.
Standard actions: Check availability, get rates, place a hold, complete a booking, modify, cancel. Same operations at every venue. An agent doesn't need custom code for each hotel chain.
Lifecycle states: Every booking moves through defined states. Agents know exactly where a booking stands—requested, held, confirmed, arrived, completed—and what can happen next.
Humans in the loop: Agents recommend and hold. Humans confirm. The traveller stays in control while the agent handles the complexity. A hold expires if they don't confirm—the venue's inventory is protected.
How the specs answer this
| Spec | What it does |
|---|---|
Bookable.actions | Standard operations: check-availability, get-rates, book, modify, cancel |
Stay | Full booking lifecycle from request to completion |
Stay.holds | Temporary reservations with configurable expiry |
Stay.webhooks | Event notifications for state changes |
The booking lifecycle
REQUEST → AVAILABLE → HELD → BOOKED → CONFIRMED → BALANCED → ARRIVED → STAYED → COMPLETED
↓ ↓ ↓
MODIFIED CANCELLED NO_SHOW
Each state has clear entry and exit conditions. Agents know exactly where a booking stands and what can happen next.
Why holds matter
Agents choose. Humans confirm.
A hold reserves inventory while the traveller reviews the recommendation and confirms. This prevents:
- Booking without consent
- Lost inventory to abandoned conversations
- Race conditions between discovery and commitment
Holds expire automatically. The venue's inventory is protected.
Links
- Product: SDK
- Specs: Stay, Bookable.actions