open-sourcetransactionalheadless

Booking Layer
\ for AI Agents

Add complete booking capabilities to any AI agent. Query availability, hold a slot, confirm. Floyd handles the infrastructure and complexity.

3 agents booking in real-time
10:00
11:00
12:00
13:00
14:00
15:00
slot_a
slot_b
slot_c
slot_d
available
hold (TTL)
confirmed
conflict → resolved
agent_1
agent_2
agent_3
Works withVapiRetell AILangChainOpenAIAnthropic

How it works

You build the experience. Floyd handles the booking logic.

Your app

AI agent or chatbot

Booking UI or form

Voice assistant

Scheduling widget

No-code automation

calls

Conflict detection

No double-bookings

Hold & expiry

Auto-expire on TTL

Floyd

Transactional booking engine

Check availability, place holds, confirm reservations and persist the state.

rest-apimcp-serveropen-source

Scheduling

Respects business rules

Safe retries

Retry without side effects

webhooks

Your systems

Email confirmation

Calendar invite

Push notification

Analytics event

Slack or SMS alert

Developer API

Complete Booking Flow

POST /v1/services/svc_01jkabc123def/availability/slots

{
  "startTime":  "2026-03-16T00:00:00Z",
  "endTime":    "2026-03-17T00:00:00Z",
  "durationMs": 3600000
}

// Response
[{
  "resourceId": "rsc_01jkabc123def",
  "slots": [
    { "startTime": "2026-03-16T10:00:00Z", "endTime": "2026-03-16T11:00:00Z" },
    { "startTime": "2026-03-16T14:00:00Z", "endTime": "2026-03-16T15:00:00Z" }
  ]
}]
POST /v1/bookings

{
  "serviceId":  "svc_01jkabc123def",
  "resourceId": "rsc_01jkabc123def",
  "startTime":  "2026-03-16T10:00:00Z",
  "endTime":    "2026-03-16T11:00:00Z",
  "metadata":   { "customerName": "Alice" }
}

// Response
{
  "id":        "bkg_01jkabc123def",
  "status":    "hold",
  "expiresAt": "2026-03-16T10:15:00Z"
}
POST /v1/bookings/bkg_01jkabc123def/confirm

// No request body

// Response
{
  "id":        "bkg_01jkabc123def",
  "status":    "confirmed",
  "expiresAt": null
}
POST /v1/bookings/bkg_01jkabc123def/reschedule

{
  "startTime": "2026-03-16T14:00:00Z",
  "endTime":   "2026-03-16T15:00:00Z"
}

// Response
{
  "id":        "bkg_01jkabc123def",
  "status":    "confirmed",
  "startTime": "2026-03-16T14:00:00Z",
  "endTime":   "2026-03-16T15:00:00Z"
}
POST /v1/bookings/bkg_01jkabc123def/cancel

// No request body

// Response
{
  "id":     "bkg_01jkabc123def",
  "status": "canceled"
}

Built-in

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.