Skip to content

Scheduling · App Starter

Booking Template

A public booking page, real availability, and reminders that cut no-shows — generated into a codebase you own.

Describe what people book with you — sessions, consultations, lessons — and Dual7 generates this scheduling app around it: a booking page your customers use without creating an account, a calendar your team actually trusts, and reminder flows that keep slots from dying quietly. All of it code you own.

  • 6 core entities
  • Public booking page
  • Code you own
  • Vibe + Governed modes

01 · Data model

What's inside: the data model

Scheduling apps break where the calendar meets reality — double bookings, stale availability, the reschedule that orphans a reminder. These six tables make availability a fact in the database rather than a hope, and every screen reads from them.

tablewhat it holds
servicesWhat can be booked — name, duration, price, buffer time before and after, and which providers offer it.
providersThe people or resources being booked — each with their own services, working hours, and calendar.
availability_slotsConcrete bookable windows computed from working hours minus existing bookings — the single source of truth the public page sells from.
bookingsA customer, a service, a provider, and a time — with status from confirmed through completed, cancelled, or no-show.
customersWho books — contact details, booking history, and notes — created on first booking, recognized on return, no account required.
remindersScheduled notifications tied to each booking, cancelled or rescheduled in the same transaction as the booking itself.

02 · Screens

Signature modules

Public booking page

01

Customers pick a service, see genuinely available times, and book in under a minute — no account, no back-and-forth. The page reads availability live, so two people can't claim the same slot no matter how simultaneously they try.

Provider calendar

02

Day and week views per provider, with buffers and blocked time visible. Dragging a booking to a new slot updates the customer, reschedules the reminders, and frees the old slot in one transaction.

Reminder flows

03

Confirmation at booking, reminder before the appointment, follow-up after — each on a schedule you define. Reminders are rows tied to bookings, so a cancellation kills its reminders instead of embarrassing you the next morning.

Reschedule and cancellation flow

04

The customer's confirmation link lets them move or cancel within rules you set — a cutoff window, a cancellation policy. Every change is logged, and freed slots return to the public page immediately.

03 · Process

How it works

  1. 1You

    Describe what people book

    Services, durations, who provides them, when you work, how far ahead people may book. Plain language — the starter turns it into schema and screens.

  2. 2Vibe mode

    Shape it in Vibe mode

    Add an intake question, change the buffer between sessions, tighten the cancellation window — conversational edits, each landing in real code.

  3. 3Governed mode

    Go live through the governed pipeline

    Ship the booking page to production with approval gates and an audit trail, on your infrastructure — your calendar data in your own database.

04 · Fit

Who the Booking starter is for

Independents booking their own time

A scheduling-link subscription rents you a page whose logo isn't yours and whose data you can't query. This starter is the same convenience as your own app — your domain, your branding, your rules about who books what and when.

Multi-provider practices coordinating a shared front door

Three consultants, one booking page, different services and hours each — and no more relaying times over the phone. Availability computes per provider while the customer just sees times that work.

Businesses where booking is the product

If appointments are how revenue arrives, the booking flow deserves better than a widget bolted to a website. Own the conversion path end to end: page speed, questions asked, reminder tone — all yours to tune.

Builders embedding scheduling in something larger

Marketplaces, portals, and service platforms all eventually need slots, bookings, and reminders. The starter is that subsystem, done correctly, as code you embed — not a third-party iframe with someone else's uptime.

05 · Yours

Customize it, own it

Make it yours

Make the booking page yours in Vibe mode: your brand, your service descriptions, intake questions per service — a brief for a consultation, an address for a house call. Adjust the rules that shape your calendar: lead time before a booking, how far out the page sells, buffers per service rather than per provider.

Extend from there in your own codebase: take deposits at booking by wiring a payment provider, sync provider calendars two-way with external calendar services, add group bookings with per-slot capacity, or gate certain services behind approval. The generated app has no runtime dependency on Dual7 — anything your booking flow needs is an edit, not a plan tier.

Why a starter, not a subscription

Scheduling tools price per seat and per feature — reminders on one tier, intake forms on another, your own branding on a third. This starter generates the whole thing as source code in your repository: page, calendar, reminders, policies. A new provider is a row, a new feature is an edit, and your booking history is a table you can query, not an export request.

You operate what you own — hosting, backups, and changes are yours. The governed pipeline keeps that responsible: gates before changes hit the live booking page, an audit trail of what changed, and regeneration when you restructure. For a business whose revenue walks in through this page, that control is the feature.

06 · Industries

Industry versions

Booking template — frequently asked questions

What's included when I start from the booking template?

A working scheduling app in code you own: services, providers, availability, bookings, customers, and reminders, with a public booking page, per-provider calendars, reminder flows, and customer self-reschedule. Deployed on your infrastructure, data in your database.

Can customers book without creating an account?

Yes — the public page asks only what the booking needs. A customer record is created on first booking and recognized on return, and the confirmation link handles reschedules without a login. Accounts are an option you can add, not a wall the page starts with.

How does it prevent double bookings?

Availability is computed, not maintained — slots derive from working hours minus existing bookings, and booking a slot is a transaction that fails cleanly for the second person who tries. There is no cached availability to drift out of date.

Can it take payments or deposits at booking?

The flow is built to accept it: add a payment step in Vibe mode and wire the provider of your choice, whether that's full prepayment, a deposit, or a card on file for no-show fees. No percentage of your bookings goes to the scheduling layer.

Is this for clinics, salons, or gyms?

Those verticals have dedicated starters that go deeper than generic booking — clinic for patient records and intake, gym for classes and memberships, salon for stylists and product sales. This starter is the general-purpose base for appointments outside those domains.

Does it schedule my staff's shifts too?

No — this is customer-facing appointments. Rostering, shift swaps, and clock-in belong to the employee shift scheduling starter. The two can share your infrastructure, but they're different problems and Dual7 keeps them different apps.

Related

Karthickraja Saravanan, Full-Stack & AI Engineer at Dual7
Published by Karthickraja Saravanan, Full-Stack & AI Engineer

Dual7 App Starters

Build your Booking on your terms

A public booking page, real availability, and reminders that cut no-shows — generated into a codebase you own. Describe your version to start — the output is a project you own.