The moment it happens
Get an email when a client cancels or reschedules
You hear about freed-up or moved slots as soon as the client makes the change.
- Runs
- The moment it happens
- Apps
- Acuity Scheduling
- AI
- Not needed
- Access
- API key
Send this to your assistant
Create a ClickRuntime automation: email me when an Acuity appointment is cancelled or rescheduled, with the client, the appointment type, the old time and the new time if there is one.
First time? Adding ClickRuntime to your assistant takes about two minutes.
Why use it
Why teams use this automation
A solo practitioner, a salon or a tutoring business that takes bookings through Acuity Scheduling loses real money when a client cancels or moves an appointment and nobody notices. The slot that opened up at 2pm tomorrow stays empty, because the notification email from Acuity went to a shared inbox that nobody opened until the evening. A one-hour massage or consultation that could have been offered to someone on the waiting list is gone.
When a client cancels or reschedules, Acuity sends a webhook with the appointment ID. The automation fetches the full appointment, so it knows the client, the service, the old time and the new time if there is one, and sends you an email that says what changed and which slot opened up. It arrives within moments of the cancellation.
It is most useful for businesses with a waiting list, and for anyone who prepares for appointments in advance, such as ordering materials or booking a room.
What you get out of it
Open slots can be refilled
Learning about a cancellation the same hour lets you message a waiting-list client or post the opening to social media. A refilled hour is revenue you would otherwise lose for good.
Late cancellations are documented
The email records when the change was made relative to the appointment. If your policy charges for cancellations inside 24 hours, you have a clear timestamp when a client disputes the fee.
Preparation is not wasted
If you order flowers, set up a room or travel to a client site, an early warning stops you doing that work for an appointment that no longer exists, saving both money and effort.
Reschedules are not mistaken for new bookings
The message says whether the client moved the visit or cancelled outright, so you can tell lost business from shifted business and plan the week accordingly. That distinction matters when you forecast income for the week.
Patterns of cancellation become visible
Over a few months, the emails show which services, days or clients cancel most often. That is the evidence you need to adjust a deposit rule or reminder timing. It also tells you when a reminder email would help.
How it works
What happens, step by step
When a client cancels or reschedules an appointment in Acuity Scheduling, Acuity tells ClickRuntime straight away.
ClickRuntime looks up the appointment and remembers its time, so it can tell you what it was before a change.
You get an email naming the client and appointment type, showing either the cancelled time or the old and new times.
Before it runs live
- Connect Acuity Scheduling
- Paste your automation's link into the other app's webhook settings
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
- Act only on the items that match your own rules, and skip the rest
- Add an AI step, for example to summarize, sort or draft a reply
- Add another app, for example also send it to Slack
- Combine it with other Acuity Scheduling steps into one automation
Under the hood
The code that runs this automation
from clickruntime import on_event, credentials, http, state, notify
@on_event
def handle(event):
body = event.json or {}
action = body.get("action")
appt = http.get(f"https://acuityscheduling.com/api/v1/appointments/{body['id']}",
auth=(credentials.secret("ACUITY_USER_ID"), credentials.secret("ACUITY_API_KEY"))).json()
times = state.get("times") or {}
old = times.get(str(appt["id"]))
now = f"{appt['date']} {appt['time']}"
if action == "canceled":
notify.email_me(f"Cancelled: {appt['firstName']} {appt['lastName']}", f"{appt['type']} on {now} was cancelled.")
elif action == "rescheduled":
notify.email_me(f"Rescheduled: {appt['firstName']} {appt['lastName']}",
f"{appt['type']}\nWas: {old or 'unknown'}\nNow: {now}")
times[str(appt["id"])] = now
state.set("times", dict(list(times.items())[-500:]))
return {"action": action}FAQ
Common questions
Does it work for cancellations made by me inside Acuity?
Which Acuity plan do I need for webhooks?
Will the email show who the client is?
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
Post new bookings to Slack
Each new appointment shows up in your channel with the client, the appointment type and the time.
See how it worksGet tomorrow's appointments each evening
Every evening you get the next day's bookings in time order, ready to plan around.
See how it worksPost new orders and sign-ups to Slack
When something happens in your shop, app or form, the details land in the right channel straight away.
See how it worksKeep exploring
Set up “Get an email when a client cancels or reschedules” from your assistant
Copy the prompt above, or connect your assistant first. Free plan, no credit card.
