Stripe deposits built in

Bookings that show up.

Kairo Booking gives your business a booking page where clients pick a service, a team member and a time, pay a deposit and get reminders, while you run the schedule from one calendar.

No credit card required · Sample salon included

Lumen Studio · Haircut & style · 45 min

Thursday, November 5

SMTWTFS1234567891011121314
09:0009:3010:0011:3014:0015:30
Pay $20.00 deposit and book
Booked · reminder in 24 h
SalonsClinicsStudiosTutorsConsultantsTrainers
Features

Everything a service business needs to take bookings

From the public page to the reports, in one small app you own.

Your booking page
A clean public page at /book/your-name: pick a service, a team member, a day and a free time. Mobile first.
Deposits with Stripe
Charge a fixed amount, a percentage or the full price at booking. A signed webhook confirms the slot.
Team schedules
Each member has their own weekly hours, services and time off. Slots are computed from all of it.
One calendar
Week view for the whole team or one person. Click an empty hour to book by hand; drag-free, keyboard friendly.
Reminders and emails
Confirmation, reminder, reschedule and cancellation emails with a manage link for the client.
Customers and reports
Visit history, no-show tracking, revenue by month, by service and by team member.
How it works

Live in an afternoon

  1. 1

    Set up

    Add services and team members with their hours. Or load the sample salon.

  2. 2

    Share your link

    Put the booking page in your bio, website or WhatsApp.

  3. 3

    Run the day

    Confirm, reschedule, record payments and let reminders do the chasing.

Built on a modern stack

A complete application, not a UI kit

Authentication, database, payments, slot engine, emails and a scheduled job are wired together and tested. Add your keys and go live.

Try the demo
  • Next.js 16 App Router, React 19, TypeScript
  • Tailwind CSS 4 and shadcn/ui, light and dark theme
  • Better Auth: email + password, Google and GitHub
  • Drizzle ORM with SQLite locally and Turso in production
  • Stripe Checkout deposits and idempotent webhooks
  • Timezone-aware slot engine with buffers, notice and horizon rules
  • Transactional emails built with React Email and sent by Resend
  • Hourly job for reminders and status updates (vercel.json included)
  • Demo mode that runs with zero API keys, plus a sample data loader

Customer history

Visits, spend and no-shows per customer, created automatically from online bookings.

Fewer no-shows

Deposits plus a reminder email the day before, sent by the hourly job.

Reports that matter

Revenue by month, bookings by service, hours and no-shows by team member.

FAQ

Frequently asked questions

Take your first online booking today

Create an account, load the sample salon and open your booking page.