open-sourcetransactionalheadless

Booking Layer
for AI Agents

Build reliable booking flows under high concurrency using our open-source booking infrastructure. Focus on your agents and let us handle the complexity.

1

Define your rules

Create services with scheduling policies for hours and durations, then assign resources to handle bookings.

2

Check availability

Query available slots through the API. Returns only time slots that satisfy policy constraints and resource capacity.

3

Hold the slot

Reserve a slot with a temporary hold during conversation. The hold locks the resource and starts a TTL timer.

4

Confirm or cancel

Confirm to finalize the booking, or cancel to release the hold. Webhooks notify your systems of state changes.

Complete Booking Flow

Check available slots, create a temporary hold during conversation, then confirm when the user agrees.

1
Check Availability
POST /v1/.../availability/slots

{
  "startTime": "2026-01-08T00:00:00Z",
  "endTime": "2026-01-08T23:59:59Z",
  "durationMs": 3600000
}

{ "slots": ["10:00", "14:00"] }
2
Create Hold
POST /v1/bookings

{
  "serviceId": "svc_consultation",
  "resourceId": "rsc_advisor_1",
  "startTime": "2026-01-08T10:00:00Z",
  "endTime": "2026-01-08T11:00:00Z"
}
{ "id": "bkg_abc123", "status": "hold" }
3
Confirm Booking
POST /v1/bookings/bkg_abc123/confirm

{
  "metadata": {
    "userName": "Alice Smith",
    "userEmail": "alice@example.com"
  }
}
{ "status": "confirmed" }

Holds expire automatically after a TTL. Conflicts are handled at the database level.

No manual cleanup. No race conditions. No complex state management.

Everything You Need for AI Agent Bookings

Flexible policies

Define bookable services with scheduling policies for business hours, slot durations, and booking windows.

Temporary holds

Create temporary holds during conversations that expire after a TTL to prevent abandoned reservations.

MCP Server

Connect AI agents through the Model Context Protocol. Agents discover and use booking tools automatically.

Smart availability

Query available slots with policy-aware filtering that returns only time slots satisfying all constraints.

Atomic bookings

Database constraints and row-level locking prevent double-booking with deterministic conflict responses.

Safe retries

All mutations support idempotency keys for safe retries that return identical responses without side effects.

Ready to integrate?Ship bookings today

Sign up for Floyd and integrate our REST API to handle bookings in your agent framework.