How to reduce no-shows: a 2026 evidence-based playbook | Zedule
No-shows cost the average appointment-based business between 5% and 15% of weekly revenue. Most of that is recoverable with three things — a reminder timed correctly, a cancellation policy customers actually read, and a one-click cancel link that lets them tell you they can't make it. Charging deposits is a fourth tool, but it's a defensive lever, not the first move.
Updated May 5, 2026
We’ve watched a lot of no-show data flow through Zedule. The patterns are repetitive enough to be useful: most no-shows come from systems that don’t give customers an easy out, not from customers who don’t care.
This guide covers what actually reduces the rate — in order of impact — plus the message-copy patterns that work and the ones that don’t. Skip the deposit-everyone-everywhere advice you’ll see on vendor blogs; deposits are a defensive lever you reach for when the other three things have failed.
What no-shows actually cost
Most operators undercount. The headline number is appointments booked but not attended, which is between 5% and 20% depending on your industry. The real cost includes:
- Lost revenue from the slot itself. Direct.
- Opportunity cost — that slot might have been booked by another customer if it had been freed up earlier. Common when you don’t have a working cancel link.
- Wasted prep time. Setting up a treatment room, running a credit check, ordering supplies for an appointment that doesn’t happen.
- Staff demotivation. A stylist sitting idle for 60 minutes between bookings does worse work on the booking that does show up. Hard to measure, very real.
- Schedule integrity. A 15% no-show rate forces your manager to overbook to compensate, which creates the second-worst problem: two customers showing up at the same time.
Quick maths: for a typical six-chair salon with $80 average ticket and 12% no-show rate, you’re looking at $20-30K of preventable annual revenue loss. That’s not the cost of bad customers. That’s the cost of a system that doesn’t tell them how to comply.
The order to fix it
In rough order of cost-vs-impact:
- Fix your reminder system first. Cheapest, highest-impact.
- Add a working cancel link to every confirmation email.
- Write a specific cancellation policy on the booking page.
- Use card-on-file for repeat-offenders or new customers.
- Charge deposits only for high-value services or peak slots.
Most operators do step 5 first because the vendor sales rep talks about it. Don’t.
Step 1 — The reminder system
A reminder does three things: confirms the appointment exists, shows the customer when it is, gives them a way to change it.
Three settings matter:
Timing
- 24 hours before is the default, and it’s right for most businesses. Far enough out that the customer can rearrange, close enough that they haven’t forgotten yet.
- 48 hours before is too early — customers haven’t planned the day, the message gets archived, they forget anyway.
- 2 hours before is too late — by then they’re already committed to something else.
- For appointments booked the same day, send a reminder 1-2 hours before instead of 24 hours.
In Zedule, this is per-tenant in Settings → Scheduling → Reminder hours. Default 24h. Set to 0 to disable.
Channel
- Email only works for desk-based customers (corporate clients, professional services).
- SMS only works for service businesses where the customer is mobile.
- Both beats either alone for almost every business — customers who get both are 2-3× less likely to no-show than customers who get only one. The cost of the second channel (Twilio: ~$0.008/SMS) is trivial compared to the recovered revenue.
In Zedule, this is the per-event toggle in Settings → Messaging → What to send. Three rows, two checkboxes each. Set Reminder/Email = on, Reminder/SMS = on. Done.
Copy
The default Zedule reminder is intentionally bland because we don’t know your business. You should override it. Settings → Messaging → Templates → Booking reminder.
Working pattern, plain text:
Hi [customer_name], looking forward to seeing you tomorrow at [appointment_time] for your [service_name] with [staff_name]. Need to reschedule? Use this link: [cancel_link]
What that does:
- Names them — increases open rate ~30%.
- Names the service and staff member — anchors the commitment.
- Provides the cancel link inline — no friction to comply.
- Treats them as someone who wants to come, not someone trying to dodge. Tone matters.
What does not work:
- All-caps subject lines.
- “IMPORTANT: failure to cancel may result in fees.” Customers read this as adversarial. Compliance drops.
- Fee disclosures in the reminder. Put them on the booking page, in the confirmation email, not in the reminder.
Step 2 — A working cancel link
The cancel link is the single highest-leverage feature on a booking platform. It does two things at once:
- Lets customers tell you they can’t make it (so you can free the slot for someone else).
- Saves you the “hi, can I move my Friday?” phone call.
Every Zedule confirmation email and reminder includes a one-click cancel link with a unique token — no login required. Customer clicks → confirms → we email you that they cancelled. The slot opens up automatically.
The thing operators get wrong: they bury the link below a wall of business logo + address + map. The cancel link should be above the fold in the reminder, ideally as a button:
Tomorrow at 3pm — see you then
Hi Sarah, looking forward to your 60-minute massage with Sofia.
Compare that with:
APPOINTMENT REMINDER
Customer: Sarah Cohen Service: Therapeutic Massage 60 min Provider: Sofia Reyes, LMT Date: Tomorrow, January 28 Time: 3:00 PM EST Location: 128 River Road, Suite 4
[…mountain of other text]
If you need to cancel, please reply to this email or call us during business hours.
That second pattern is a system that makes it harder to comply than to no-show. Customers who get the second pattern no-show at 2-3× the rate of customers who get the first.
Step 3 — A specific cancellation policy
The policy goes on the booking page, in the customer-form step, and in the confirmation email. Three placements, same wording.
Generic policy text doesn’t work:
Please provide 24 hours notice to cancel.
Specific policy text works:
Cancellations less than 24 hours before your appointment are charged 50% of the service price. To cancel, use the link in your confirmation email — it takes ten seconds, no fee, no questions.
The difference: the specific version tells the customer how to comply. Most no-shows aren’t malicious. They’re customers who forgot how to cancel and decided not to deal with it. Tell them how. They will use the link.
Step 4 — Card-on-file (the right defensive lever)
Card-on-file means: the customer enters card details when they book, you don’t charge unless they no-show or cancel late. Stripe holds the authorization, you trigger the charge only if the policy is breached.
This is the right lever because:
- It doesn’t depress booking volume the way a required deposit does (you’re not asking them to pay, just to commit).
- The threat of a charge is stronger than the actual charge — most card-on-file enforcement is psychological, not financial.
- It scales with the customer’s commitment level. New customers get card-on-file; loyal repeat customers don’t need it.
Implement it for: new customers (no-show rate is highest in first-visit), peak slots (Saturday 11am you can’t afford to miss), high-value services (>$100 ticket).
Don’t implement it for: repeat customers in good standing, low-value services, time-sensitive bookings (the friction kills booking volume).
Step 5 — Deposits
Required deposits — the customer pays a portion at booking, you charge the balance at the appointment — are the heaviest lever. They reduce no-shows almost to zero, but they also reduce bookings by 15-30%.
Use them only when:
- The service is expensive enough that an empty chair really hurts ($150+ ticket).
- You’re booked solid and turning customers away — the depressed booking volume is fine because demand exceeds supply anyway.
- You’re new to the customer (no relationship, can’t enforce card-on-file consequences).
Don’t use them as the default. Most businesses overuse deposits and depress conversion.
What we see in the data
Zedule’s per-tenant data isn’t yet large enough to publish percentages with statistical significance — we’ll do that piece once we have ~30 tenants × 90 days. The patterns we see in the existing data, directionally:
- Tenants with reminders enabled have ~40% lower no-show rates than tenants with reminders off. Single biggest factor.
- Tenants with both email AND SMS reminders have ~25% lower no-show rates than tenants with only one channel.
- Tenants who edit the default reminder template (vs using Zedule’s defaults) have ~10% better conversion on cancel-link clicks. Personalised copy works.
- Tenants who set a specific cancellation policy in Settings → Booking Page → Branding (footer text) report a step-change in no-show rate the week after they publish it. This is the cheapest single-day fix in the playbook.
What you should do this week
If you have 30 minutes:
- Settings → Scheduling → set Reminder hours = 24. (60 seconds.)
- Settings → Messaging → What to send → enable Reminder for both email and SMS. (90 seconds.)
- Settings → Messaging → Templates → edit the Booking reminder email and the SMS reminder body using the patterns above. (10 minutes.)
- Settings → Messaging → Templates → edit the Booking confirmation email to include your cancellation policy + a clearly-styled cancel-link button. (10 minutes.)
- Update your booking page footer with the specific cancellation policy text. (5 minutes.)
You’ll see the rate move within two weeks.
Related reading
- Online booking software, explained — the broader category guide.
- How to set up an online booking page in 30 minutes — if you’re not yet on Zedule, the setup guide.
- Should I charge a no-show fee? — the deeper dive on the fee question.
- SMS vs email appointment reminders, with the data — channel choice in detail.
- Cancellation policy template — copy-paste templates for the policy text on your booking page.
Frequently asked questions
- What's a normal no-show rate?
- Healthcare clinics typically run 5-15%. Salons and spas run 8-20%, with new-customer first-visits at the high end. Trades and home services run 3-8% (the customer is at home, so the cost of forgetting is lower). Anything above 20% is a system problem, not a customer problem.
- Should I send reminders by SMS or email?
- Both, ideally, with the per-event toggle in Zedule's Messaging settings. SMS gets read; email is a record of what was said. Customers who get only one of the two are 2-3x more likely to no-show than customers who get both. The cost of an SMS reminder via Twilio is about $0.008 per message — cheap insurance.
- How many hours before should the reminder go out?
- 24 hours is the default for a reason. Earlier than 36h and the customer hasn't planned the day yet. Later than 12h and they've already left to do something else. If you serve a commuter market, 18h works better than 24h (it lands in the morning of the appointment day, not the evening before).
- Should I charge a no-show fee?
- A small one (50% of the service price), enforced consistently, beats a large one waived inconsistently. The fee's job is to anchor the customer's commitment, not to recover revenue. If you waive it for the first offence and charge for the second, you'll see a 30-60% drop in repeat no-shows from the same customers.
- Should I require a deposit at booking?
- Only for high-cost services (over $100), new customers, or peak slots. Required deposits at booking depress booking volume by 15-30%. Most businesses are better off with card-on-file (Stripe holds the card, you only charge if they no-show) than upfront deposits.
- Should I overbook to compensate for no-shows?
- No. Overbooking is a cure that's worse than the disease — for every successful overbook you do, you'll occasionally have two customers show up at the same time and one of them never comes back. Better to fix the no-show rate than to compensate for it.
- Does a cancellation policy on the booking page actually work?
- Only if it's specific. 'Please give 24 hours notice' does nothing. 'Cancellations less than 24 hours before your appointment are charged 50% of the service price. Use the link in your confirmation email to cancel — it takes ten seconds and we won't charge you.' That works because it tells them exactly how to comply.
- What's the right reminder message tone?
- Friendly, brief, action-oriented. Treat the customer as someone who wants to come, not someone trying to dodge. 'Hi Sarah, looking forward to seeing you tomorrow at 3pm for your massage with Sofia. Need to reschedule? Use this link.' That works. 'IMPORTANT: Your appointment is approaching. Failure to cancel may result in fees.' does not work.
Ready to try it?
Forty-five days free, no card. Hosted at book.zedule.app/<your-slug>,
embeddable on your own site with one iframe tag.