Skip to content

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.

Paste it into your assistant. It tells you what it will send or change before it runs live.

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

  1. When a client cancels or reschedules an appointment in Acuity Scheduling, Acuity tells ClickRuntime straight away.

  2. ClickRuntime looks up the appointment and remembers its time, so it can tell you what it was before a change.

  3. 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

RunsThe moment it happens
Get an email when a client cancels or reschedulesjust nowSucceeded
Email · RescheduledRescheduled: Robin Diaz 60-min Consultation · Was: October 24, 2026 2:30pm · Now: October 27, 2026 10:00am

Build your own

Need it to work differently?

This template is a starting point. Copy the prompt and change it, or describe a different automation from scratch, with your own conditions, more apps or an AI step. Your assistant writes it, tests it and runs it on ClickRuntime.
  • 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

This is the Python script that runs each time the automation starts. Your AI assistant writes it for you when you send the prompt, and you allow each step in your assistant. To change how the automation works, describe the change to your assistant and it updates the script for you. For every function it can use, see the script reference.
cancellation_reschedule_alert.pyexample
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?
Acuity sends the webhook when the appointment is canceled or rescheduled, whether the client or a staff member did it. If you only want client-initiated changes, your AI assistant can add a check on who made the change.
Which Acuity plan do I need for webhooks?
Webhooks are available in Acuity's paid plans that include API access. If you are unsure, check your Scheduling account settings or ask Acuity support before setting this up. Acuity lists the plans that include API access on its pricing page.
Will the email show who the client is?
Yes. Because the automation fetches the appointment after the webhook arrives, the email can include the client name, email address and phone number, the service booked and any intake form answers you want to see.
What permissions does it need?
API key. Nothing else in your accounts is used.
Does it need AI?
No. It runs without AI, so it doesn't use your plan's AI allowance.
How many runs does it use?
One run for each event the app sends.
Can I change how it works?
Yes. Describe the change to your AI assistant, for example a different schedule, channel or filter. It updates the automation, tests it and tells you what changed.

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.