Integrations · Your diary
Acuity Scheduling
Your appointment types, your real availability, and the booking written back into Acuity — with the caller never knowing which of the two systems answered.
Books into it
What it does
Your appointment types become the service menu
They mirror across on connect with their durations, so the agent quotes what Acuity already holds instead of a second list you keep in step by hand.
Availability read live, booking written back
The agent asks Acuity what is genuinely open before it offers a time, and creates the appointment there. Acuity returns an explicit code for a slot that has just gone, so the agent offers another one rather than saying something vague and hoping.
It re-checks the truth on every webhook
Acuity's webhooks cannot be signature-verified by a third-party app, so Harkbell treats a delivery as a hint rather than a fact: every one re-fetches the appointment over the authenticated API before anything is mirrored. A forged webhook therefore changes nothing.
A dead connection says so
Acuity issues nothing to refresh a credential with, so a dead connection is a fresh key rather than something to retry quietly forever. You are told once, plainly, instead of wondering why bookings stopped.
Turning it on
- In Acuity, open Integrations and scroll to API. Copy the User ID and the API Key.
- Paste both into Integrations here. We check them with Acuity before storing anything.
- Tick the appointment types your agent may offer, and check they read the way your clients ask for them.
- Publish.
What this actually takes
- An Acuity plan that includes API access. Acuity gates its API on plan tier rather than on the app connecting to it, so this is between you and Acuity — if the API section is missing from your Acuity, your plan does not carry it, and you can put your name down instead.
- Your own User ID and API key, pasted once. They are encrypted at rest and never leave the server.
- A fresh key if you ever regenerate it in Acuity, since Acuity issues nothing to refresh a credential with.
the part nobody else prints
What it will never do
- Trust an unverifiable webhook. Every delivery is re-fetched over the authenticated API before it changes anything.
- Retry a dead credential in the background. A connection Acuity has stopped accepting is surfaced, not hidden.
- Book a slot Acuity says has gone.
Questions people ask about this one
Do I need a particular Acuity plan?
You need one that includes API access. That is Acuity's rule rather than ours, it is set per account, and it is worth checking on your billing page before you connect. If Acuity refuses the connection you will know within seconds, not weeks.
Why does it re-fetch every webhook?
Because Acuity's webhooks carry no signature a third-party app can verify. Anyone who learned the URL could otherwise post a fake cancellation. Re-fetching over the authenticated API makes a forged delivery worthless.
Your diary
Square Appointments
Books into Square itself, one service or several in one visit. Team, services and cancellations sync both ways.
Calendly
Books into your Calendly event types, in your words rather than Calendly's.
Vagaro
Books into Vagaro. Services mirrored, availability read live.
No diary at all
Works with a paper diary. Structured requests, confirmed in one tap.
Hear it before you connect anything.
The free plan has real answered minutes. Put it on your own website, ask it the questions your callers ask, and connect Acuity Scheduling when you are convinced.