daybooked.io is live. It is booking for instructors, coaches, studios and rental shops: group classes with seats, private sessions from a calendar or weekly hours, and equipment rentals by the hour or the day. And it is built for the people who build for them: the developer behind a studio's website, the agency with a roster of small-business clients, the one person on a team who keeps the systems running, and anyone teaching an assistant to book a class.
Booking systems tend to start as a checkout page and grow a dashboard, and the API comes later, if it comes at all. We started with the API.
One API, three doors
Everything in daybooked is an operation, written once. The dashboard runs it, the REST API serves it with an OpenAPI spec, and the MCP server exposes it as a tool, with the same validation and the same errors on all three. Bookings, sessions, hours, customers, messages, webhooks: what a business does in the dashboard, your code does through the same operations.
A booking takes three calls:
KEY="Authorization: Bearer daybooked_live_…"
# 1. What can be booked
curl -H "$KEY" https://daybooked.io/api/v1/offerings
# 2. What's open on Saturday (local dates, in the business's time zone)
curl -H "$KEY" -G https://daybooked.io/api/v1/offerings/OFFERING_ID/availability \
-d from=2026-12-05 -d to=2026-12-05
# 3. Book two places
curl -H "$KEY" https://daybooked.io/api/v1/bookings \
-H "Content-Type: application/json" \
-d '{"offering_id": "OFFERING_ID", "starts_at": "2026-12-05T15:00:00Z",
"quantity": 2, "customer": {"email": "pat@example.com", "name": "Pat"}}'
The parts you'd otherwise build yourself
- Capacity is checked under a lock. Every booking goes through one Postgres function that locks the offering and counts what is left, so the last seat in a Saturday class sells once, no matter which door the request came through.
- Holds and retries are built in. Pass
hold_minutesto keep a place while a guest decides or pays, and anidempotency_keyso a retried request returns the same booking instead of a second one. The holds guide has the details. - Every change is an event. Poll
/api/v1/eventswith a cursor, or register a webhook: events arrive signed with HMAC-SHA256, in order, and retried until your endpoint answers. - The data leaves with one call. An export returns the whole account as JSON: offerings, sessions, customers, bookings, messages, webhooks and recent events.
A widget for the site you already built
Most small businesses already have a website. One tag puts the booking flow on it, inline or behind a floating Book now button:
<script src="https://daybooked.io/widget.js" data-org="your-slug" async></script>
Your page hears a daybooked:booked event when a booking confirms, and there are step-by-step guides for Squarespace, Webflow, WordPress, Wix, Shopify, Framer and Google Sites.
Agents welcome
The MCP server is at https://daybooked.io/api/mcp, listed in the official MCP registry. Claude Code and Cursor connect with an API key; claude.ai and ChatGPT add it as a custom connector and sign in with OAuth, no key needed.
claude mcp add --transport http daybooked https://daybooked.io/api/mcp \
--header "Authorization: Bearer daybooked_live_…"
Each business's booking page also publishes its offerings in plain text at /book/<slug>/llms.txt, so an assistant planning someone's week can read what is bookable before it books. And every account comes with an ops agent of its own: it opens the next session when one fills up, sends a morning brief and guest reminders, and each automation sits behind a dial from Off to Ask me to Do it quietly, inside limits the business sets.
Free to build on
The API, the MCP server and webhooks are on every plan, the free one included. Free covers 25 bookings a month (a soft cap: every booking past it still confirms) and shows a small "Bookings by daybooked" mark under the widget. Pro is $39 a month, flat, and adds payment at booking, straight into the business's own Stripe account, with no mark and no cap. There is no cut of any booking on either plan, and guests pay the business's price with nothing added.
Start building
Create a free account at daybooked.io, get an API key from Dashboard → Developers, and make your first booking with the quickstart. If you build sites for small businesses, the widget is one line. If you build agents, connect one and ask it what's open on Saturday.
The case study covers how we built daybooked, the newest product from the lab side of Wise Mountain. If you would rather we build the integration, the booking flow, or the agent for a business you work with, that is what we do.