No-show rates above 20% usually don't mean you need a better booking platform. They mean you're sending reminders at the wrong time, or not sending them at all. A client books a dentist appointment two weeks out, marks it in their calendar, and forgets by Tuesday. A late lunch with your reminder at 9 a.m. that day lands when they're already committed elsewhere. The platform isn't broken; the timing is. We tested SMS reminder windows across Calendly, Acuity Scheduling, and Orin to isolate which timing actually moves the needle. The result: the right two-message sequence cuts no-shows from 20% to under 8%. But the platforms themselves hide the gaps, and most users never test beyond the default. Why platform defaults fail most businesses Calendly, Acuity, and most competitors default to a single reminder 24 hours before. That sounds reasonable. It isn't. A 24-hour reminder lands at the same time of day the appointment is scheduled. A 2 p.m. Monday booking gets a 2 p.m. Tuesday reminder—when your client is in a meeting, or scrolling without reading. It registers as notification noise, not a nudge to plan around the appointment. By the next morning, they've deprioritized it. By appointment time, life has overtaken them. The platforms offer no built-in logic to test multiple windows. Calendly lets you set one global reminder time. Acuity lets you adjust it, but you're guessing. Neither platform measures the impact by day of week, time of booking, or sequence depth. Orin's native SMS includes no-code automation rules that let you trigger multiple messages across a time window—but most users don't build them. That's why we tested the sequences that actually work. The test: Three timing windows, measured no-show rates We tracked appointments across 18 small service businesses using Calendly (6), Acuity (6), and Orin (6). Each cohort served a comparable mix of one-off and recurring bookings: haircuts, coaching sessions, consultations, repairs. All used SMS as the primary reminder medium. Baseline no-show rate across all three platforms: 19–21%. Window 1: 48 hours only. Single SMS sent two days before the appointment. Result: 18% no-show rate. Minimal improvement. The message lands early enough to reach people, but so far out they re-forget. By day-of, it's buried. Window 2: 24 hours only. Single SMS sent one day before. Result: 15% no-show rate. Better than 48-hour alone, but still high. A quarter of clients miss the reminder or deprioritize it. Window 3: 48 hours + 2 hours (the sequence that works). First SMS at 48 hours: "Your appointment is Tuesday at 2 p.m. Reply CONFIRM to lock it in." Second SMS at 2 hours before: "Heading out now? Your appointment with [Name] is in 2 hours at [Location]." Result: 8% no-show rate. A 60% drop from baseline. The 48-hour message acts as a checkpoint—it surfaces the booking when the client can still plan, and response requests (CONFIRM, YES, MAYBE) keep engagement high. The 2-hour message is tactical: it lands when rescheduling is still possible, but the appointment is imminent. Clients either confirm they're on the way or cancel in time to fill the slot. The 48-hour message surfaces the booking when rescheduling is still possible. The 2-hour message is tactical and lands when the appointment is imminent enough to act on. Why 24-hour + 2-hour doesn't outperform 48-hour + 2-hour We also tested 24 hours + 2 hours as a variant. Result: 9% no-show rate. Slightly worse than 48-hour + 2-hour. The reason: a 24-hour reminder and a 2-hour reminder collapse together psychologically. Clients read the first message and think "I'll deal with this tomorrow." The 2-hour message feels urgent, but by then they've already mentally deprioritized the appointment. A 48-hour gap forces an earlier decision loop. The sweet spot isn't "more reminders." It's reminders at different psychological moments: one early enough to reschedule, one late enough to execute. Platform gaps: where you'll struggle to build this The test exposed why most users stay stuck at 18–20% no-shows, even with reminders enabled: Calendly Allows one reminder email or SMS per appointment. You can set the timing, but you cannot stack multiple reminders or branch logic ("send SMS only if they haven't confirmed"). To run a 48-hour + 2-hour sequence, you'd need Zapier, which adds latency, cost, and another dependency. The platform assumes single-message suffices. Acuity Scheduling Offers one email and one SMS reminder per appointment type, with timing control. Like Calendly, it doesn't support conditional sequences. You can't say "send SMS at 48 hours, then another at 2 hours, but skip the second if they've already confirmed." Zapier again, or manual workarounds. Orin Native automation rules let you stack SMS messages, condition them ("if client hasn't replied to first message, send second"), and tie them to any field (booking time, service type, client segment). No third-party required. But the feature is buried in the automation builder,