# Daily WhatsApp reminders for tomorrow's appointments

> Every evening at 6pm, message tomorrow's customers on WhatsApp with their appointment time and location, so fewer of them forget to show up.

- Workflow type: code
- Services: Kapso, Google Calendar
- Categories: Operations, Customer Support
- Published: 2026-08-07

## What it does

- Checks your bookings calendar every evening at 6pm and pulls every appointment scheduled for the next day.
- Finds the customer's WhatsApp number in the booking details, and quietly skips any appointment that does not have one.
- Sends each customer an approved WhatsApp reminder with their name, appointment time, and location.
- Keeps track of who has already been messaged, so running it again never sends anyone a second reminder.

## What you'll need

- A Google Calendar account, and the calendar you use for customer bookings.
- A Kapso account with a connected WhatsApp business number.
- An approved WhatsApp reminder template in Kapso with placeholders for the customer name, appointment time, and location. WhatsApp requires a pre-approved template to message customers who have not written to you in the last 24 hours.
- Customer phone numbers saved in the description or location field of each booking.

## Prompt

Every day at 6pm, send WhatsApp reminders for tomorrow's appointments so we stop losing money to no-shows. Run this on a daily cron at 6pm in our business timezone.

Start by fetching tomorrow's appointments from Google Calendar with the List Events operation, pointed at our bookings calendar. Set the time window to cover all of tomorrow, from midnight to 11:59pm in our local timezone, and page through the results so a busy day never gets truncated. Skip anything that is cancelled, and skip all-day entries, which are usually holiday or availability blocks rather than real bookings.

For each remaining event, pull the customer's WhatsApp number out of the event description or the location field. Booking tools write the number into either place and the formatting is inconsistent, so match tolerantly: allow spaces, dashes, parentheses, and a leading plus or country code, then normalize whatever you find into E.164 format. If an event has no number that parses into a plausible phone number, skip that event and carry on with the rest. One unparseable event must never fail the whole run. Take the customer name from the event title, falling back to the first guest's name if the title does not carry it.

For every appointment that has a usable number, send the reminder with Kapso's Send a Message operation, passing the normalized number in the `to` field. This has to be an approved WhatsApp message template rather than free-form text. Kapso's own docs are explicit that "Sending a template to a number outside an open 24-hour customer service window requires an approved message template", and a reminder going out the day before an appointment is almost always outside that window. Fill the template variables with the customer name, the appointment start time formatted in our local timezone, and the location.

Send at most one reminder per event. Before sending, check whether we have already logged a reminder for that calendar event id, and skip the event if we have. After each successful send, record the event id so that a manual rerun later the same evening never messages anyone twice.

Finish the run with a short log line summarizing how many events were found, how many reminders were sent, how many were skipped for a missing or unparseable number, and how many were skipped because a reminder had already gone out.

## How to customize

- Change the send time. The evening before is a common choice, but you can move it earlier, or run it twice so customers get a reminder a day ahead and again on the morning of.
- Point it at a different calendar, or filter to specific appointment types so internal blocks and personal events are left alone.
- Swap in a different approved template to reword the reminder, add your cancellation policy, or send in another language.

## FAQ

### Why does the reminder have to use a pre-approved template?

WhatsApp only lets businesses send free-form messages to someone who has written to them in the last 24 hours. A reminder going out the day before an appointment falls outside that window, so it has to use a message template that WhatsApp has approved in advance. You set the template up once in Kapso, and this workflow fills in the customer's details each time it runs.

### What happens if a booking has no phone number?

That appointment is skipped and the rest still go out. Nothing fails, and nothing gets sent to a wrong number. It is worth glancing at the skipped count now and then, because it usually points at bookings where someone forgot to record the number.

### Could a customer get the same reminder twice?

No. Every appointment that has been messaged is recorded, so if the workflow runs again, whether on schedule or because someone started it manually, anyone already reminded is skipped.

### Where does it look for the phone number?

In the description and the location field of the calendar booking, which is where most booking tools put it. The formatting does not need to be consistent. Numbers written with spaces, dashes, brackets, or a country code in front are all recognized.

### Will this work for a clinic or salon that books everything in Google Calendar?

Yes, that is exactly the setup it is built for. Any business running appointments out of Google Calendar, including clinics, dentists, salons, and trades, can use it as long as the customer's number is saved on the booking.

Use this prompt in General Input: https://www.generalinput.com/prompts/daily-whatsapp-reminders-for-tomorrows-appointments