Weekday SMS appointment reminders from your Google Calendar
Every weekday at 8am, text tomorrow's clients a friendly reminder pulled from your calendar and post a summary to Slack.
Build me an appointment reminder agent that runs on a cron trigger every weekday at 8am in my local time zone.
Each run, use Google Calendar's List Events on my primary calendar (plus any additional calendars I specify at setup) to fetch events starting in the next 24 hours. Include the event summary, description, location, hangout / conference link, start and end time, and the attendee list.
For each event, the agent should reason about who the client is and where their mobile phone number lives. Phone numbers may appear in the event description as free text, inside an attendee's display name, or on an attendee entry. Extract the client's name and phone number, then normalize the number to E.164 using a default country code I configure (e.g. +1 for US). If no plausible mobile number can be extracted, skip the event and remember it as "skipped: missing number" for the summary.
Also skip any event whose extendedProperties.private already contains reminder-sent = "true" so the same client isn't texted twice, and skip events that are all-day, cancelled, marked as free/out-of-office, or that are internal team meetings with no external client.
For every event that passes the checks, draft a short, friendly SMS (under 300 characters) that includes the client's first name, the appointment day and time in my local time zone, the location or video meeting link, and my business name. Then send it via ClickSend's Send SMS operation. Use my configured sender ID or dedicated number as the from field.
After a successful send, call Google Calendar's Patch Event to set extendedProperties.private.reminder-sent = "true" on that event so it won't be re-reminded on subsequent runs.
When all events are processed, post a one-line summary to a Slack channel I specify using Slack Bot's Send a Message operation. The summary should show how many reminders were sent, how many events were skipped because a phone number could not be found (with the event titles), and how many were already reminded. If zero events matched, post something short like "No reminders needed today".
Setup inputs I should be prompted for: business name, default country code, additional calendar IDs (optional), ClickSend sender ID or number, Slack channel ID for the summary, and the local time zone for the 8am schedule.
Additional information
What does this prompt do?
- Scans your Google Calendar every weekday morning for appointments happening in the next 24 hours.
- Figures out each attendee's name and mobile number, even when the phone number is buried in the event description.
- Sends every client a short, personalized SMS through ClickSend with the time, location or video link, and your business name.
- Skips anyone already reminded, and posts a one-line recap in Slack showing how many texts went out and which events were skipped.
What do I need to use this?
- A Google Calendar account with your appointments on it.
- A ClickSend account with SMS credit and a sender ID or number.
- A Slack workspace where the recap message should be posted.
- Your business name and a default country code to use when a phone number is missing its country prefix.
How can I customize it?
- Change the run time or days (for example 7am, or including Saturdays for salons and clinics).
- Add extra calendars beyond your primary one, or narrow to a specific calendar like 'Consultations'.
- Rewrite the SMS wording, tone, or signature to match your brand voice.
- Swap the Slack channel or add a manager DM alongside the summary.
Frequently asked questions
What happens if a client doesn't have a phone number on their event?
Will the same client get texted twice if I re-run it?
Can I use my own calendars beyond the primary one?
Do phone numbers need to be in a specific format?
Is this a good fit for clinics, salons, or solo consultants?
Related templates
Stop losing revenue to no-shows.
Connect Google Calendar, ClickSend, and Slack once, and Geni texts tomorrow's clients every weekday at 8am.