Bookly
SMS appointment reminders
Fewer empty slots, from your own number
A reminder the day before helps people remember their appointment. Reminders go out from your own phone and number, so customers can simply reply to reschedule.
Setup
- 1. Install the SMSTunnel plugin and link your phone: SMSTunnel → Quick Setup, then scan the QR code with the SMSTunnel app (Connections → Link with QR code)
- 2. Install SMSTunnel Notifications for Bookly and activate it. Once it's on WordPress.org: Plugins → Add Plugin, search for that exact name.
Coming to WordPress.org. Want it sooner? Write to us.
- 3. Go to SMSTunnel → SMS for Bookly, set Hours before, write the Message and tick Enable reminders
Message placeholders:
{customer_name} {service} {date} {time} {staff} {price} {site_name}
Why reminders only
The free version of Bookly does not fire any action hook when a booking is created, so there is no reliable way to react to that moment. Rather than pretend otherwise, this add-on does the part that can be done correctly.
That turns out to be the valuable part anyway: a reminder is inherently time-based, not event-based. A scheduled check of upcoming appointments is the right way to build it — and it's also the piece that actually reduces no-shows.
How it works
A background task runs every 15 minutes and looks for approved appointments starting within your lead time ("Hours before", 1 to 168 hours), so a booking made later than that still gets its reminder at the next check. Each customer's booking is recorded with its start time once it has been texted: nobody is reminded twice for the same time, every customer of a group appointment gets their own reminder, and a moved appointment gets one for its new time.
Phone numbers from the booking form are validated first: they must start with + and the country code, and premium-rate numbers are rejected — a public booking form should never become a way for someone else to earn money at your expense.
Build it with an AI assistant
Copy this prompt into Claude, ChatGPT, Cursor or Copilot and replace the part in [brackets]. Don't paste your API key into the chat: the prompt doesn't need it.
Help me set up SMSTunnel appointment reminders for Bookly in WordPress.
About SMSTunnel (https://smstunnel.io): my own apps and tools hand text messages (SMS) to my SMSTunnel account, and my own Android phone sends them from my own number, on my own SIM and plan. The phone runs the SMSTunnel app from Google Play (https://play.google.com/store/apps/details?id=io.smstunnel.app), signed in to my account.
What I want: [describe what should send a text, to whom, and when]
How it works:
- Plugins: SMSTunnel (core), the add-on "SMSTunnel Notifications for Bookly" and Bookly (the free version works).
- The SMSTunnel core plugin (https://wordpress.org/plugins/smstunnel/) links the site to my phone: SMSTunnel → Quick Setup, then I scan the QR code with the SMSTunnel app (Connections → Link with QR code) and approve on the phone. An API key works too: SMSTunnel → Settings → "Connect with API Key".
- Settings: SMSTunnel → "SMS for Bookly": "Enable reminders" (Send an SMS reminder before each appointment), "Hours before" (1 to 168, default 24), "Message" (default "Reminder: {service} on {date} at {time}. See you soon!").
- Placeholders: {customer_name}, {service}, {date}, {time}, {staff}, {price}, {site_name}.
- Reminders only, for approved appointments, checked every 15 minutes; each customer gets one reminder per appointment time (a moved appointment is reminded again).
- Numbers must start with + and the country code (spaces are fine). A local number with a leading 0 is skipped, one without + is read as if it began with a country code, and premium-rate numbers are always skipped. Each number gets its own text, of up to 1600 characters: a longer one is refused, not cut. If my phone is offline, the texts wait and go out when it is back.
- For custom code, the core plugin has smstunnel_send_sms($phone, $message, $args = array()), with $args 'is_2fa' (sends through the sign-in code endpoint), 'order_id' and 'source'; it returns an array with 'success' and 'messageId', or 'error'. smstunnel_sanitize_recipient($phone) returns the number in international format, or '' when it is invalid or premium-rate.
Rules for your answer:
- Do not ask for my SMSTunnel password or API key and do not put a real key in your answer; I will not paste it in this chat.
- Phone numbers must be in international format (+ and the country code).
- Help me test it with my own number first.
- Only send texts people expect from me. No unsolicited texts. This is a third-party integration built by SMSTunnel.io. It is not affiliated with, endorsed by, or sponsored by Bookly or its trademark owner.
Using Amelia instead?
That add-on also sends confirmations and cancellation notices.
See the Amelia integration