A missed appointment costs a service business twice. The slot sits empty, and someone who would have booked it was turned away. Texts are the cheapest fix most businesses have: most people read a text within minutes, a confirmation can be answered with one letter, and a reminder at the right hour turns "I forgot" into "I'll be there."
This post gives you templates you can copy for the three texts in an appointment cycle: the request (getting someone booked), the confirmation (locking it in) and the reminder (getting them to show up). Each comes with when to send it, what wording keeps you compliant, and how many segments it costs. If you want the full setup walkthrough, our appointment reminder SMS guide covers timing and automation in more depth.
Ground rules before you copy anything
These rules apply to every template below. Skipping them is how good reminders end up filtered or reported.
- Text only people who agreed to it. Someone who booked online, filled out a form that said they'd get texts, or texted you first has given you something to work with. Someone whose number you found in an old spreadsheet has not. Keep the record of when and how each person opted in. On Ready, the sender's attestation is logged for every bulk send and every API send that sets
consent_attested(who sent, to how many, when), but that is not a per-contact consent record. Your booking system or intake form needs to store that. - Identify yourself in every text. Start with the business name. "Hi, it's Maple Dental" beats an unknown number asking someone to confirm.
- Put STOP language in the first text of a thread. "Reply STOP to opt out" belongs in the first message you send someone. After that, include it periodically. Ready honors STOP and UNSUBSCRIBE automatically and blocks that contact across every campaign.
- Leave sensitive details out. Clinics, therapists and med spas should say "your appointment," not the procedure or condition. A lock screen is not private.
- Keep it under 160 characters. One GSM-7 segment holds 160 characters. Go over and the message splits into 153-character parts, each billed separately. One emoji drops the limit to 70 characters, so a 140-character reminder with a calendar emoji becomes 3 segments instead of 1. That's 3x the cost for a picture. Ready swaps curly quotes, long dashes and ellipses for plain characters before sending, so those don't change your count.
The templates below are written to fit in one segment with typical names, dates and times filled in. Check the final count after your merge fields fill, because a long business name or street address can push a message over.
Appointment request templates
Use these when someone has asked to be booked but hasn't picked a time: a web form, a missed call, a quote request.
Timing: within five minutes of the inquiry, during business hours. The lead is still thinking about the problem they contacted you about. Wait a day and they've booked someone else.
1. Form submission follow-up
Hi {first_name}, it's {business}. Thanks for reaching out. What day and time works best for your visit this week? Reply STOP to opt out.
2. Missed call follow-up
Hi, it's {business}. Sorry we missed your call. Want to book a time? Reply with a day that works and we'll confirm. Reply STOP to opt out.
3. Offering two slots
Hi {first_name}, {business} here. We have {slot_1} or {slot_2} open. Reply 1 or 2 to grab one. Reply STOP to opt out.
4. Rebooking after a cancellation
Hi {first_name}, it's {business}. We saw you had to cancel. Want to pick a new time? Reply with a day and we'll find a slot.
Template 3 tends to get the fastest replies because it asks for a single character instead of an open-ended answer. Template 4 has no STOP line because it continues an existing conversation. If it's the first text in a thread, add one.
Leave links out of these first texts. A booking link in the very first message to a new number is one of the patterns carriers filter most. Send the link after they reply. We cover why in the two-message warmup post.
Confirmation templates
Use these the moment the appointment is booked, so the customer has the details in writing and a way to change them.
Timing: immediately after booking. If someone books at 10:40 PM through your online scheduler, the confirmation can't go out until morning. On Ready, a 1:1 or API text sent during the recipient's quiet hours is held only if the window opens within 6 hours; otherwise it is refused and your system has to resend it. A held text is charged only when it actually sends.
5. Standard confirmation
{business}: You're booked for {day}, {date} at {time}. Reply C to confirm or R to reschedule. Reply STOP to opt out.
6. Confirmation with address
Hi {first_name}, your {business} appointment is {day} at {time}, {short_address}. Need to change it? Just reply here.
7. In-home service window
{business}: Your tech will arrive {date} between {window_start} and {window_end}. We'll text when they're on the way. Reply R to reschedule.
8. Confirmation needing prep
Hi {first_name}, {business} here. See you {day} at {time}. Please arrive 10 min early to fill out a short form. Reply R to reschedule.
The "Reply C / Reply R" pattern works because it gives you a clean signal. Replies land in your Inbox (and in GoHighLevel if your account is connected), so staff can mark the booking confirmed or start a reschedule. If you'd like an automatic acknowledgment, our auto reply examples post has wording that won't sound robotic.
Reminder templates
These texts do the most to cut no-shows.
Timing: most service businesses do best with two reminders.
| Appointment type | First reminder | Second reminder |
|---|---|---|
| Medical, dental, therapy | 48 hours before | Morning of, or 2 hours before |
| Salon, spa, fitness | 24 hours before | 2 hours before |
| In-home service (HVAC, plumbing, cleaning) | Day before, afternoon | When the tech leaves for the job |
| Consultations, legal, financial | 24 hours before | 1 hour before |
The first reminder gives people time to reschedule, which you want: a cancellation with 48 hours' notice can be filled, and a no-show can't. The second reminder catches the people who meant to come and forgot.
Watch the clock on early appointments. A "2 hours before" reminder for a 7:30 AM appointment would go out at 5:30 AM, and federal rules generally limit marketing texts to 8 AM to 9 PM in the recipient's local time, with some states stricter. Send the reminder the evening before instead. If your customers span time zones, this post on timezone-aware quiet hours explains how to keep a 9 AM send from landing at 6 AM.
9. 48-hour reminder
{business} reminder: You're scheduled {day} at {time}. Reply C to confirm or R if you need a new time.
10. 24-hour reminder
Hi {first_name}, see you tomorrow at {time} at {business}. Need to reschedule? Reply R and we'll sort it out.
11. Same-day reminder
{business}: Your appointment is today at {time}. Reply R if something came up and we'll find another slot.
12. Tech on the way
{business}: {tech_name} is on the way and should arrive in about {eta} min. Reply here if you need anything.
13. No reply to confirmation
Hi {first_name}, {business} here. We haven't heard back about {day} at {time}. Reply C to keep it or R to move it.
Send template 13 only once. One nudge is service. Three is how you end up with a STOP reply and an empty slot anyway.
What a month of these texts costs
Here's a worked example with stated assumptions, since a vague price doesn't help you plan.
Assumptions: a practice books 400 appointments a month. Each gets one confirmation and two reminders, all under 160 characters with no emoji, so 1 segment each. About 300 replies come back (C, R, questions). Replies are billed like sent texts.
- Sent: 400 × 3 = 1,200 segments
- Received: 300 segments
- Total: 1,500 segments
On Ready's Standard rate of $0.0075/segment plus a $0.0045 carrier fee per segment:
- Rate: 1,500 × $0.0075 = $11.25
- Carrier fees: 1,500 × $0.0045, itemized separately on your bill
That all-in figure excludes the optional compliance surcharge. TCPA/DNC scrubbing and landline validation each add $0.003 per segment when switched on for an account, and both are off by default.
Add a calendar emoji to every reminder and the math changes quickly. If the emoji pushes each message past 70 characters into 3 unicode segments, the 1,200 sent segments become 3,600. Leave the emoji out.
You'll also pay for 10DLC registration, which carriers require for business texting from a local number: $25/mo for registration and $2 per number. Most approvals take 2 to 7 days. Your registration sample messages should match what you'll actually send, so paste a couple of these templates in. If a campaign gets rejected, our resubmission guide walks through the fixes.
To be fair about pricing: raw APIs like Twilio, and GoHighLevel's built-in LC Phone, cost less per message than our Standard rate. What you get with Ready is self-serve registration, quiet-hours holds, automatic STOP handling and an inbox and campaigns in the same place, without building them yourself.
If you're sending these from your own software
If you build scheduling or practice-management software and want to send these texts on behalf of your customers, the same templates work over the API. One reminder is a single request:
POST https://api.tryready.com/v1/messages with an X-API-Key header, an Idempotency-Key (any UUID, so a retried request never double-texts a patient), and a body like {"to": "+12125550199", "body": "Maple Dental reminder: You're scheduled Tue at 2:30 PM. Reply C to confirm or R if you need a new time.", "consent_attested": true}.
Opt-outs are refused up front and not charged, so a patient who replied STOP last month won't get tomorrow's reminder even if your system forgets. Each of your customers can run as its own sub-account with its own numbers and registration. The messages API docs and quickstart cover the rest.
The short version
Request within five minutes, confirm right after booking, and remind twice: once early enough to reschedule and once close enough to jog memory. Name your business in every text, put STOP language in the first one, keep each under 160 characters with no emoji, and keep your own record of who opted in.
If you want to try these, create an account. Your first 20 texts are free one-to-one sends, so use them to test a few templates on your own phone before you register. Pricing details are on our pricing page.