← All articles

Appointment reminder SMS: 17 ready templates under 160 characters, and when to send them

8 min readDeutsch

17 appointment reminder SMS texts for practices, physio, salons, workshops, restaurants and B2B, each under 160 characters, with timing, send_at and opt-out.

A missed appointment costs a practice, a salon or a workshop an empty slot that nobody else can use at short notice. A reminder by SMS the day before is the cheapest insurance against it: it arrives on the lock screen, needs no app and is read within minutes. This article gives you 17 ready-to-use templates for typical businesses, all of which fit into a single SMS, explains when each kind of reminder works best, and shows how to schedule reminders with the send_at field of the TopSMS API so that nobody has to press “send” at six in the evening.

Rules that apply to every template

  • One segment, 160 characters. All templates below stay under 160 characters of the GSM-7 alphabet with realistic values. German umlauts and ß are part of that alphabet; emoji, typographic quotes („…“ or “…”) and the en dash are not and would switch the message to Unicode with only 70 characters per segment. That is why the templates use straight characters and a plain hyphen only.
  • Who, when, what to do. The business name first, then date and time, then the one action you want: bring something, call to cancel, rebook.
  • A way to answer. Messages from an alphanumeric sender such as “PraxisMayer” cannot be answered. Every template therefore contains a phone number or a link for changes.
  • No advertising. A reminder is a transactional message and needs no marketing consent, as long as it stays a reminder. An offer added at the end turns it into advertising.

The templates

Placeholders in braces are replaced by your booking software or, when you send from the TopSMS dashboard, by the variables of a campaign; the TopSMS API itself sends the text exactly as it receives it. *The character count is calculated with these example values: name “Alexandra”, date “Thu 19 Nov”, time “10:30”, phone “030 1234567”, link “tsms.cz/a1b2c3”, registration “B-MK 2481”, guests “4”. Longer names or addresses add their extra length.

UseTemplateCharacters*
Medical practice, day beforeDr Mayer practice: Reminder of your appointment tomorrow, {date}, at {time}. Please bring your health insurance card. Cancel: {phone}140
Medical practice, with preparationDr Mayer practice: Your blood test is on {date} at {time}. Please come fasting (water is fine). To reschedule call {phone}.130
Dental practice, 2 days aheadDental practice Weber: {name}, your appointment is on {date} at {time}. If you cannot come, please let us know 24 hours ahead: {phone}144
Physiotherapy, seriesPhysio Lindner: Your next session is on {date} at {time}. Please bring a towel and your prescription. Questions or changes: {phone}138
Physiotherapy, last session of a prescriptionPhysio Lindner: {date} at {time} is the last session on your prescription. Please bring a new one if treatment continues.124
Hair salon, day beforeSalon Bella: Hi {name}, see you tomorrow at {time}! If something comes up, please call {phone} so we can give the slot to someone else.141
Beauty salon, same dayStudio Lumi: Your appointment is today at {time}. Please arrive 5 minutes early. Running late? Call {phone}.111
Salon, with online rebookingSalon Bella: Reminder for {date} at {time}. Need a different time? Rebook here: {link}97
Car workshop, day beforeAutohaus Klein: Your car {car} is booked for {date} at {time}. Please bring the keys and service book. Changes: {phone}130
Car workshop, tyre changeAutohaus Klein: Tyre change for {car} on {date} at {time}. Your stored tyres are ready. Cannot make it? Call {phone}.128
Car workshop, car readyAutohaus Klein: Your car {car} is ready for pickup. Opening hours today until 18:00. Payment by card or cash.113
Restaurant, reservation same dayTrattoria Roma: We look forward to seeing you today at {time}, table for {guests}. If your plans change, please call {phone}.121
Restaurant, larger groupTrattoria Roma: Your reservation for {guests} people on {date} at {time} is confirmed. Please let us know about changes 24 h ahead: {phone}139
B2B meeting, day beforeMeyer Consulting: Reminder of our meeting tomorrow at {time} at our office, Hauptstr. 12, Berlin. Reception 2nd floor. Contact: {phone}138
B2B video callMeyer Consulting: Our video call starts on {date} at {time}. The link is in your calendar invitation. Questions: {phone}127
Reminder with opt-out noteDr Mayer practice: Appointment on {date} at {time}. No more SMS reminders? Just tell us on {phone} or at the reception.126
Short version, any businessReminder: {date}, {time}. Cancel: {phone}48

When to send which reminder

BusinessBest timeWhy
Medical and dental practices24 to 48 hours ahead, between 17:00 and 19:00Enough time to cancel so the slot can be offered to the waiting list.
Physiotherapy seriesThe evening before each sessionWeekly sessions are easy to forget; the last session note prevents a gap in the prescription.
Hair and beauty salonsThe day before, or 2 to 3 hours ahead for same-day bookingsShort notice still lets you fill the slot from walk-ins.
WorkshopsThe day before, plus “car ready” when the job is doneThe pickup message saves phone calls asking “is it ready yet?”.
RestaurantsThe morning of the reservation, or 24 hours ahead for groupsGroups need time to change numbers; same-day reminders cut no-shows.
B2B meetingsThe working day before, around middayLeaves time to sort out the address, the parking and the agenda.

Send reminders during the day and the early evening, roughly between 8:00 and 20:00, and not on Sunday morning. A reminder at 22:30 annoys more than it helps, even if the appointment is early the next morning.

Scheduling with send_at

The cleanest approach is to schedule the reminder at the moment the appointment is booked. Add the send_at field to the normal send request, and TopSMS sends the message at that time:

POST https://www.topsms.cz/api/sms/send
{
  "to": "+4915112345678",
  "text": "Dr Mayer practice: Reminder of your appointment tomorrow, Thu 19 Nov, at 10:30. Please bring your health insurance card. Cancel: 030 1234567",
  "from": "PraxisMayer",
  "send_at": "2026-11-18T18:00:00+01:00"
}

The response is HTTP 202 with status scheduled and a jobId:

HTTP/1.1 202 Accepted
{ "ok": true, "scheduled": true, "id": "cmv...", "jobId": "cmw...", "status": "scheduled",
  "sendAt": "2026-11-18T17:00:00.000Z", "price": 2.04,
  "statusUrl": "https://www.topsms.cz/api/sms/jobs/cmw..." }
  • Time zone. send_at is an ISO 8601 timestamp with a time zone (or a Unix timestamp). Germany and Austria are on +01:00 in winter and +02:00 in summer; let your programming language compute the offset for the date of the reminder rather than hard-coding it.
  • Limits. At most 30 days ahead. A time less than one minute from now is sent immediately. For appointments further ahead, schedule the reminder later, for example in a nightly job that picks up all appointments in the coming days.
  • Price. The credit is deducted when the message is scheduled.
  • Cancellation. If the appointment is cancelled or moved, cancel the reminder with the stored jobId; the price is refunded to your credit. Then schedule a new one for the new time.
DELETE https://www.topsms.cz/api/sms/jobs/cmw...
Authorization: Bearer CLIENT_ID:SECRET

For a daily batch, send_at also works with the bulk endpoint /api/sms/send-bulk, which takes up to 500 recipients with individual texts per request. When you test with a test key, a scheduled request returns HTTP 200 with "scheduled": true and no jobId, and nothing is sent or charged.

Without code, the campaign module in the dashboard does the same: upload a CSV with name, phone number, date and time, use the columns as variables in the text and set the send time.

Opt-out wording

Appointment reminders are part of the service you provide, so the law does not require an opt-out in every message. Still, some customers do not want them, and offering a simple way out builds trust. Because nobody can reply to a sender name, “reply STOP” does not work. Use instead:

  • No more SMS reminders? Just tell us on 030 1234567.
  • Prefer no reminders? Let us know at the reception.

When a customer opts out, mark the number as opted out in TopSMS (in the contact detail, or in bulk by importing a CSV with an optOut column). The API then rejects messages to that number with code 400, so a mistake in your booking system cannot send a reminder by accident.

What reminders cost

With TopSMS a reminder to a German or Austrian number costs €0.084 per segment, with no monthly fee. All templates above are one segment. A practice with 400 appointments a month pays €33.58 for its reminders; compare that with what a single empty slot costs.

Copy a template, adjust the name and phone number, and try it: create a free account with 10 test SMS, or schedule your first reminder through the REST API with send_at. The article on SMS length explains how segments are counted.