Bookings that match your actual schedule.
Cal.com embed on Day 1 — same UX as Calendly without the per-seat tax. When your scheduling rules outgrow what any SaaS can express, I rebuild on Supabase + Stripe + Twilio + Resend so the bookings, deposits, and customer data live in your database, not a vendor's.
Calendly works. Until it doesn't.
Every SaaS booking tool — Calendly, Cal.com, Acuity, SimplyBook — works fine until your scheduling has a rule they don't support. The 15-minute buffer between barber-chair clients that becomes 30 minutes on Wednesdays because that's tutoring afternoon. The senior stylist who only takes new clients on Tuesdays. The contractor whose availability depends on driving time from the last job. None of that fits in a dropdown menu.
Then there's the cost curve. Calendly is $12/user/mo plus per-event fees on higher plans. Acuity starts at $20/mo. Once you've got 4 staff seats and SMS reminders bolted on, you're paying $80-150/mo for a SaaS that still won't let you customize the booking form past their template.
And your customer data — names, phone numbers, appointment history — lives in their database. If you ever want to text a campaign to your last 200 customers, you're exporting CSVs and re-importing them somewhere else. The relationships are yours; the database shouldn't be theirs.
Two stages, one upgrade path.
Stage 1, Day 1: Cal.com embed inside your custom site. Skinned to your brand, no Calendly logo in the corner, free for one user. Confirmations via Resend, basic SMS via Twilio. This covers 80% of service businesses for 80% of their lifespan — no reason to over-build.
Stage 2, when volume justifies it: I rebuild the booking flow on Supabase + Stripe + Twilio + Resend. Custom availability engine that models your real rules. Stripe charges deposits at booking time. Multi-staff routing with Google Calendar sync. Twilio SMS reminders that measurably cut no-shows.
The trigger for Stage 2 is concrete — either you're paying $50+/mo in Cal.com / Calendly fees (the math flips), or you have a scheduling rule SaaS can't express. No upgrade pressure, no upsell. You stay on Stage 1 as long as it works.
Either stage, bookings and customer data live in your Supabase. Export, query, text-blast, integrate with anything. The platform doesn't own your customer list.
Real availability, not generic timeslots.
- Cal.com embed, day one
- Branded Cal.com embed inside your custom site — same colors, same fonts, no Calendly logo in the corner. Works the day the site ships, free for the first user.
- Custom Supabase availability engine
- When SaaS rules break, I rebuild on Supabase. Day-of-week buffers, staff-specific rules, blackout dates, recurring overrides — whatever your actual schedule looks like, expressed as code instead of toggles.
- Stripe deposits at booking
- Charge a deposit (or full price) when the booking is confirmed. Reduces no-shows measurably — one salon I scoped was eating $400/mo in no-shows; a $25 deposit on Stripe cut that to under $50.
- Twilio SMS reminders
- Text reminder 24 hours out, optional follow-up 1 hour before. Industry data is consistent: SMS reminders cut no-shows roughly in half. Twilio costs ~$0.008 per message, passed through at cost.
- Resend email confirmations
- Confirmation, reminder, and post-appointment follow-up emails sent from your domain via Resend. No Mailchimp branding, no $20/mo for 500 contacts.
- Multi-staff routing + calendar sync
- Each staff member has their own services, rules, and Google Calendar / iCal sync. Customer picks a service, sees only qualified staff, books straight into the right calendar.
Where booking fits in.
Foundation can add the Cal.com embed as a +$99/mo bolt-on. Growth includes it standard. Operate is for service businesses where booking is the heart of the operation — custom availability, deposits, multi-staff, the works.
-
Foundation
$299/mo · website only — booking is +$99/mo add-on
- Custom website + hosting + basic SEO
- Cal.com embed add-on: +$99/mo (branded, your domain)
- Resend email confirmations included with add-on
- No SMS, no deposits, no multi-staff routing
-
Growth
$599/mo · Cal.com embed + confirmations + basic SMS reminders
- Everything in Foundation, plus:
- Cal.com embed branded to your site, single staff or small team
- Resend email confirmations + reminders from your domain
- Twilio SMS reminders (per-message cost passed through)
- Google Calendar / iCal sync
-
Operate
$999/mo · custom Supabase pipeline + Stripe deposits + multi-staff
- Custom availability engine on Supabase — your real rules as code
- Stripe deposits or full payment at booking time
- Multi-staff routing with per-person services and rules
- No-show automation: reminders, deposit forfeiture, rebook flows
Booking systems, honest answers.
Cal.com vs Calendly vs Acuity — which one do you actually use?
Cal.com for Stage 1, almost always. It's open-source, free for one user, and the embed is clean enough to skin to your brand. Calendly is fine but costs $12/user/mo and locks you into their UI. Acuity (Squarespace Scheduling) is the most feature-rich SaaS but starts at $20/mo and the customization ceiling is low. If you're already on Acuity and it works, I won't churn-and-burn you — but if you're outgrowing it, that's the moment to talk.
When do I actually need the custom pipeline instead of Cal.com?
Two triggers. First: you're paying $50+/mo in Cal.com fees because you've added staff seats and integrations — at that point the math flips and a custom build pays for itself. Second: you have a scheduling rule Cal.com can't express. Things like 'Mondays only, alternating weeks, only for clients who've booked twice before' — that's a custom availability engine on Supabase, not a SaaS toggle.
How does Twilio SMS pricing work?
Twilio charges per message — roughly $0.0083 per SMS in the US plus ~$1.15/mo for a phone number. For most SMB bookings that's $5-15/mo in actual SMS cost on top of the Operate subscription. I pass Twilio costs through at-cost, no markup. You see the bill, you own the Twilio account.
Can I take deposits or full payment at booking time?
Yes — that's a core feature of the Operate tier. Stripe charges the card when the booking is confirmed, deposit refunds on cancellation per your policy, full charge on no-show if you want. This alone usually pays for the tier — a salon I scoped was eating $400/mo in no-shows; a $25 deposit cut that to under $50.
Multi-staff scheduling — how does it actually work?
Each staff member gets their own availability rules, services they can perform, and Google Calendar sync. When a customer picks a service, they see only the staff who do it, and only their open slots. Bookings land in the right calendar automatically. The Cal.com embed handles this for small teams (2-5 people); the custom Supabase build handles it for larger teams with complex rules like seniority-based assignment or rotating coverage.
My availability rules are kind of weird. Is that a problem?
Weird availability is the whole reason this page exists. Every service business has rules SaaS can't model — the 15-minute buffer that becomes 30 on Wednesdays, the 'no new clients after 4pm Friday' rule, the seasonal hours. I write those rules as code. If you can describe it on a call, I can build it.
Stop losing bookings to generic timeslots.
Tell me your real availability rules — the buffers, the day-of-week exceptions, the staff assignments. I'll show you whether Cal.com embed handles it or whether you need the custom pipeline. Either way, you own the data.
Book a fit call