We set up GoHighLevel for you · Book a free 15-minute callWe set up GoHighLevel for you
Book a call

How to set up appointment reminders and no-show follow-up in GoHighLevel

A desk calendar on a table in front of someone waiting

Short answer

Build reminders as a workflow with the Appointment Status trigger and Wait steps set to An upcoming appointment or booking, so each reminder is timed from the start time. HighLevel removes the contact from the workflow when the appointment is cancelled or marked no-show, and a reschedule starts it over for the new time. A second workflow on the No-show status sends a rebooking text. If you'd rather not build it yourself, our Appointment engine package does it for you.

Calendar notifications or a workflow?

Each calendar has its own notifications under Calendars > Calendar Settings > your calendar > Notifications: booked, confirmed, cancellation, reschedule, reminder and follow-up, by email, SMS, WhatsApp or in-app. Reminders are set by how long before the appointment they go out.

That's enough for simple reminders. Use a workflow when you want a no-show sequence, different messages per calendar, or steps beyond messages. Pick one for reminders, not both, or people get two of each.

Before you start

  1. Register your number for texting. Texts from a US local number need an approved A2P 10DLC campaign. Start under Settings > Phone System > Trust Center > Brand & Campaigns: the brand first, then the campaign with its use case, sample messages and how people opt in. Twilio blocks texts to US numbers from a local number that isn't on an approved campaign (error 30034). Toll-free numbers need toll-free verification instead.
  2. Turn on the opt-out and sender lines. Settings > Phone System > Messaging. HighLevel can add opt-out wording such as Reply STOP to unsubscribe, and your business name, when a text doesn't already have them, and can add them again on a schedule in long conversations. A contact who replies STOP gets SMS DND turned on, and workflow texts skip them.
  3. Check time zones. In the workflow's Settings tab, choose Contact Timezone so reminders follow each customer's time zone. Contacts without one fall back to the account time zone.

Build the reminder workflow

  1. Create the workflow. Automation > Workflows > Create Workflow. Start from scratch, or from HighLevel's Appointment Confirmation + Reminder recipe and check each step below.
  2. Add the Appointment Status trigger. Click Add New Trigger, choose Appointment Status, set In Calendar to your calendar, and the status to New and Confirmed. Don't use Customer Booked Appointment for reminders: it doesn't fire for bookings your team makes, reschedules or recurring appointments.
  3. Send the confirmation. Add Send SMS and Send Email with the date, time, address and how to reschedule.
  4. Wait until the day before. Add a Wait set to An upcoming appointment or booking, Appointment / Calendar Event, one day before the start time.
  5. Choose what happens if that time has passed. For a booking made the same day, the day-before reminder is already late. Pick Skip all outbound communication actions till next wait or event start date action, so it skips ahead to the next reminder instead of sending a stale one.
  6. Send the day-before reminder. Add Send SMS, and Send Email if you want both.
  7. Wait until two hours before. Add another appointment Wait, two hours before the start time, and Send SMS with the address and parking or arrival notes.
  8. Handle reschedules. HighLevel treats a rescheduled appointment as new: the contact re-enters from the beginning with the new time. If you want a different message for it, add an If/Else with the Appointment filter Rescheduled is True, and send an "updated time" text on that branch instead of the first confirmation.
  9. Know what stops it. When the status changes to Cancelled, Invalid or No-show, HighLevel removes the contact from the workflow, so no more reminders go out.
  10. Publish. Switch from Draft to Publish and save.

Build the no-show follow-up

This only works if your team marks missed appointments as No-show. Make that part of closing out the day.

  1. Create a second workflow. Automation > Workflows > Create Workflow, from scratch.
  2. Trigger on No-show. Add the Appointment Status trigger, In Calendar set to your calendar, status No-show.
  3. Wait a little. Add a Wait of a set period of time, such as 15 minutes, so the text doesn't land while they're still parking.
  4. Send the rebooking text. Add Send SMS with your booking link. Keep it kind: people miss appointments for real reasons.
  5. Wait for a reply. Add a Wait set to The contact to reply, on SMS, with a timeout of one day.
  6. Send one follow-up. If there's no reply, send one more text or an email, then stop. Turn on Stop on Response in Settings so a reply ends it.
  7. End it when they rebook. Add a Goal Event with goal type Appointment Status (New or Confirmed), and set it to End this workflow.
  8. Tell your team. Add an Internal Notification to the assigned user, so someone can call if it's a high-value appointment.
  9. Publish. Switch to Publish and save.

Message drafts

  • No-show: "Hi, we missed you today at Bayview Physio. No problem, these things happen. Here's a link to pick a new time: [booking link]. Reply STOP to opt out."
  • No-show follow-up: "Just making sure you saw this. Reply with a day that works and we'll fit you in."
  • Rescheduled: "Your appointment is now Thu Nov 12 at 10 am. Reply STOP to opt out."
  1. Hi, it's Bayview Physio. You're booked for Tue Nov 10 at 2:30 pm at 14 Pier St. Need to change it? Use this link: [reschedule link]. Reply STOP to opt out.
  2. Reminder: your appointment is tomorrow at 2:30 pm. See you then. Reply STOP to opt out.
  3. See you at 2:30 today. Parking is behind the building.

How to test it

  1. Book a test appointment for tomorrow. Use a new test contact with your own cell number. You should get the confirmation right away.
  2. Book one for today. Book for three hours from now. The day-before reminder should be skipped and the two-hour one should arrive.
  3. Reschedule it. Move the appointment. You should get the new time and reminders based on it, not the old one.
  4. Cancel one. Cancel a test appointment and check in Enrollment History that the contact left the workflow.
  5. Mark one No-show. Change a test appointment's status to No-show. The rebooking text should arrive after your wait. Then book again from the link and check the Goal Event ended the workflow.

What can go wrong

  • Reminders arrive at the wrong hour: usually the workflow's time zone or a fixed wait. See Appointment reminders at the wrong time.
  • No confirmation goes out: the calendar's notification type or channel is off, or bookings start unconfirmed. See Appointment confirmations not sending.
  • A wait step doesn't release: contacts already waiting keep the old timing when you edit it. See Workflow wait step not working.
  • The reschedule branch never matches: the Appointment filters only work with appointment triggers. See If/Else not matching.
  • People get two reminders: the calendar's notifications and the workflow are both sending. See Duplicate text messages.

Our Appointment engine package builds the confirmations, reminders and no-show follow-up and tests them on real bookings, if you'd rather we did it.

Common questions

Will reminders stop if someone cancels?
Yes. When the appointment status changes to Cancelled, Invalid or No-show, HighLevel removes the contact from the reminder workflow.
What happens to reminders when someone reschedules?
HighLevel treats a reschedule as a new appointment, so the contact starts the workflow again, timed from the new start.
Why use Appointment Status instead of Customer Booked Appointment?
Customer Booked Appointment only fires when the customer books through your link. It misses bookings your team makes, reschedules and recurring appointments.
Can a customer confirm by replying?
Their reply lands in Conversations, where your team can confirm the appointment. We didn't find a documented way to change the appointment status from a text reply, so we left that out.

More setup guides

All setup guides

Want GoHighLevel set up and running for you?

Book a free 15-minute call. Tell us what you sell and where your leads come from, new account or the one you have, and we'll tell you what we'd set up, how long it takes and what it costs.

Rather we set it up? Appointment engine, done for you.

See the packageBook a call