Daily
Email clients a reminder the day before their appointment
Every client with an appointment tomorrow gets a reminder email with the time, the place and how to reschedule.
- Runs
- Daily
- Apps
- Gmail, Google Calendar
- AI
- Optional
- Access
- Calendar read; Gmail gmail.send
Send this to your assistant
Create a ClickRuntime automation: every day at 9am, email each client who has an appointment tomorrow a reminder with the time, the place and how to reschedule.
First time? Adding ClickRuntime to your assistant takes about two minutes.
Why use it
Why teams use this automation
A physiotherapist books clients straight into Google Calendar. A few times a week someone simply does not turn up, and the empty slot cannot be filled at short notice. Reminder texts would help, but sending them by hand every evening is one more task at the end of a long day.
This automation reads tomorrow's appointments each morning and emails every client a short reminder from your own Gmail, including how to move the booking if they cannot make it.
What you get out of it
Fewer missed appointments
A reminder the day before gives people a chance to remember, plan their travel or tell you they cannot come.
Cancellations arrive in time to refill
Clients who need to reschedule do it a day ahead instead of not showing up, so the slot can go to someone on your waiting list.
Sent from your own address
Reminders come from your Gmail, so clients can simply reply with questions and the conversation stays with you.
Your calendar stays the only system
Keep booking appointments the way you already do. The reminders read from the calendar, so there is no booking tool to switch to.
How it works
What happens, step by step
Every morning at 9am ClickRuntime reads tomorrow's events from your Google Calendar.
It picks out appointments that have a client added as a guest.
Each client gets a reminder email with the time, the location and how to reschedule.
Each appointment gets one reminder, sent from your own Gmail.
Before it runs live
- Connect Google through your own Google app (a one-time, 10-minute setup), so it works with your own Gmail
- Connect Google Calendar
What you get
Build your own
Need it to work differently?
Your own rules
Conditions, thresholds, filters and exceptions, written the way you'd explain them to a colleague.
Any number of apps
One automation can read from one app and update several others. Over 248 apps are ready, and anything with an API works too.
AI where it helps
Summaries, classification, extraction and drafts use ClickRuntime's built-in AI, with no extra key.
On a schedule or on each event
Runs as often as every 5 minutes, or the moment an app sends an event, and keeps track of what it already handled.
Changes you can ask for
- Run it at a different time, more or less often, or only on weekdays
- Change what the AI looks for, or how it writes the result
- Add another app, for example also send it to Slack
- Combine it with other Gmail and Google Calendar steps into one automation
Under the hood
The code that runs this automation
import base64
from datetime import datetime, timedelta, timezone
from email.mime.text import MIMEText
from google.oauth2.credentials import Credentials
from googleapiclient.discovery import build
from clickruntime import on_trigger, credentials
DOMAIN = "northwind.example"
RESCHEDULE = "Reply to this email or call 555-0100 to move your appointment."
@on_trigger
def run(event):
creds = Credentials(credentials.connection("google", "work"))
cal = build("calendar", "v3", credentials=creds, cache_discovery=False)
gmail = build("gmail", "v1", credentials=creds, cache_discovery=False)
start = (datetime.now(timezone.utc) + timedelta(days=1)).replace(hour=0, minute=0, second=0, microsecond=0)
events = cal.events().list(calendarId="primary", timeMin=start.isoformat(), timeMax=(start + timedelta(days=1)).isoformat(),
singleEvents=True).execute().get("items", [])
sent = 0
for ev in events:
when = ev["start"].get("dateTime", ev["start"].get("date"))
for guest in [a["email"] for a in ev.get("attendees", []) if not a["email"].endswith("@" + DOMAIN)]:
body = f"A reminder of your appointment tomorrow at {when[11:16]}.\nPlace: {ev.get('location', 'see invite')}\n{RESCHEDULE}"
mime = MIMEText(body); mime["To"] = guest; mime["Subject"] = f"Reminder: {ev.get('summary', 'your appointment')} tomorrow"
gmail.users().messages().send(userId="me", body={"raw": base64.urlsafe_b64encode(mime.as_bytes()).decode()}).execute()
sent += 1
return {"reminders": sent}FAQ
Common questions
How does it know the client's email?
Can the reminder include directions or forms?
Will internal meetings get reminders?
What permissions does it need?
Does it need AI?
How many runs does it use?
Can I change how it works?
Related
You might also like
Get a research brief before every external meeting
An hour before any meeting with people outside your company, you get an email about who they are, recent news and what you last discussed.
See how it worksBuild a daily timesheet from your calendar and sent email
Each evening you get a timesheet of the day grouped by client, built from your meetings and sent emails.
See how it worksDraft follow-ups for prospects who have gone quiet
Each morning you get ready-to-send follow-up drafts in Gmail for prospects who have not replied in a week, plus a slot in your calendar to send them.
See how it worksKeep exploring
Set up “Email clients a reminder the day before their appointment” from your assistant
Copy the prompt above, or connect your assistant first. Free plan, no credit card.