Open source · Apache-2.0

Make anything bookable by AI agents.

OpenBooking is the open-source framework that connects restaurants, salons, clinics and every other bookable thing to ChatGPT, Claude and any AI agent. You build one integration, and it works with every agent protocol.

Speaks MCP today. UCP and A2A are in progress.

Assistant · connected to Demo Bistro via OpenBooking
Table for 4 this Friday around 7? Outside if possible.
search_availability { date: "Fri", party_size: 4, preferences: ["outdoor"] }
→ 3 slots · 19:00 · 19:30 · 20:00
hold_slot { slot_id: "slot_…19:00" }
→ held · expires in 10 min
I've held an outdoor table for 4 at 19:00 on Friday. Shall I confirm?
Free cancellation until Thursday 19:00, then 200 NOK per guest. No deposit.
Yes, book it.
confirm_booking { user_confirmed: true, idempotency_key: "7f3c…" }
→ confirmed · K7Q2XM
✓ Booked: Friday 19:00, outdoor table for 4. Confirmation code K7Q2XM.
One integration, every agent protocol:
MCP supported UCP draft A2A coming
Why now

Agents are the new front door. Booking systems weren't built for them.

More and more people say "book me a table" to an AI assistant instead of opening an app. Agents make mistakes that people don't, and booking is where those mistakes cost real money.

Double bookings on retry

Agents time out and try again. Without idempotency, one request turns into two tables and two no-shows.

Booking without asking

An eager agent confirms a deposit before the user has seen the price. That's a chargeback waiting to happen.

Guessing at the rules

Cancellation windows, deposits, party limits. If the API doesn't spell them out, agents guess, and they guess wrong.

How it works

Implement one interface. Reach every agent.

You connect OpenBooking to your inventory once. It handles the protocols and the safeguards, so every agent gets the same reliable behavior.

Your system
Booking platformPOS, PMS, scheduler
CalendarGoogle, Cal.com
Custom backendAny database
→
OpenBooking core
BookingProvider
  • Holds that expire
  • Idempotent retries
  • Explicit user consent
  • Policies and deposits up front
  • Errors with next steps
→
Every agent
MCPClaude, ChatGPT, Cursor…
UCPAgentic commerce platforms
A2AAgent-to-agent
Safeguards built in

Agent bookings that don't go wrong.

The reliability rules live in the framework, not in your code, so every protocol gets them for free.

Holds that expire

A slot is reserved while the user decides, and released automatically when time runs out. Every response states exactly when that is.

// hold_slot →
{ "status": "held",
  "expires_at": "2026-10-02T19:10:00+02:00",
  "expires_in_seconds": 600 }

Retries never double-book

Every change takes an idempotency key. Same key, same result, nothing runs twice, even when calls arrive at the same moment.

// retry after a timeout → same booking
hold_slot({ slot_id, idempotency_key: "7f3c…" })
// → booking_id "bk_91a2…" (replayed)

Nothing confirms without the user

confirm_booking requires user_confirmed: true. Price, deposit and cancellation terms are shown before confirmation, never after.

{ "code": "user_confirmation_required",
  "suggested_next_action": "Show the user the
   price, deposit and cancellation policy…" }

Errors that tell agents what to do

Every failure says what happened and what to try next, so agents recover on their own instead of giving up.

{ "code": "slot_unavailable",
  "suggested_next_action": "Call search_availability
   again and offer the closest alternatives." }
Who it's for

From booking platforms to a single tennis court.

Booking platforms

Make every venue on your platform agent-ready

Add OpenBooking once, and all your customers become bookable by agents.

  • Open-source SDK
  • Keep your data and your brand
  • We keep up with protocol changes
Businesses

Get found and booked by AI assistants

Restaurants, salons, clinics and studios. Connect the system you already use, no code required.

  • Hosted, no code Pro
  • Connectors for common systems
  • See which agents book you
Anything bookable

No booking system? No problem.

Courts, meeting rooms, tours, equipment, consultants. If it has a calendar, it can be booked by an agent.

  • Opening hours and capacity
  • Deposits and cancellation rules
  • Works with any calendar
🍽 Restaurants💇 Salons🩺 Clinics🎾 Courts🏨 Hotels🧘 Studios🚗 Rentals🗺 Tours💼 Consultants🏢 Meeting rooms
Quickstart

Bookable by agents in an afternoon.

Implement a handful of methods against your inventory, and OpenBooking does the rest.

  1. InstallTypeScript, runs on Node 20+.
  2. Implement BookingProviderSearch, hold, confirm, cancel, written against your own data.
  3. ServeOne app gives you MCP, UCP and discovery documents at well-known URLs.
  4. Connect an agentPoint Claude, ChatGPT or any MCP client at /mcp.
import { type BookingProvider } from '@openbooking/core';

export class MySalon implements BookingProvider {
  info = { name: 'Studio Nord' };

  async listVenues() { /* … */ }

  async searchAvailability(query) {
    // free slots with price, deposit and policy
  }

  async createHold({ slot_id, expires_at }) {
    // reserve atomically until expires_at
  }

  async confirmHold({ booking_id, customer }) { /* … */ }
  async getBooking(id) { /* … */ }
  async cancelBooking({ booking_id, fee }) { /* … */ }
}
Protocol support

Built on open standards.

OpenBooking follows the specs exactly where they exist. Where they don't yet cover bookings, we extend them openly and document every difference.

Protocol Status What you get
MCP
Model Context Protocol
● Supported Five tools: search, hold, confirm, get and cancel. Works over HTTP and stdio.
UCP
Universal Commerce Protocol
● Draft A discovery profile and booking sessions, extended to support time slots.
A2A
Agent2Agent
● Coming An Agent Card for discovery. Full task handling is on the roadmap.
Open source + Pro

Free to build on. Pro when you run it at scale.

The framework is open source and always will be. Pro is for teams that want us to run it for them.

Open source

Free
Apache-2.0, self-hosted
  • Core framework and safeguards
  • MCP, UCP and A2A adapters
  • Reference provider and demo
  • Agent-reliability benchmark
  • Community support
View on GitHub

Pro Coming soon

Hosted
For platforms and businesses
  • Managed hosting with persistent state
  • Ready-made connectors for popular booking systems
  • Agent traffic and conversion analytics
  • Deposits, payments and no-show protection
  • "Agent-ready" certification
Join the waitlist

The future of booking is agentic. Be ready for it.