Customer Operations
Scheduling: every appointment has one true state
One appointment, four different promises
Most scheduling trouble comes from one word doing four jobs. “Booked” can mean the customer asked for a time, the office wrote it down, dispatch assigned a technician, or the work is done. When a single flag stands for all of them, customers get confirmed for times nobody can keep, and the office can't tell which jobs are actually happening.
A scheduling system gives each of those its own state, its own owner and its own message. Times are offered from the dispatch board's real capacity, held briefly while the customer decides, and only confirmed by the person or system entitled to confirm them.
Every state has an owner
When the plan changes
J-544 · 9 Willow Ct
- done
Times offered
Thu AM, Thu PM, Fri AM
- done
Thu AM held
15 min
- done
Dispatch confirms
T3, Thu 08:00–10:00
- done
Confirmation sent
text and email
Requested, held and confirmed in one conversation, from the times dispatch actually has.
J-544 · 9 Willow Ct
- done
Thu AM held
15 min
- done
Hold expires
J-561 booked the slot
- done
New times offered
Thu PM, Fri AM
- done
Customer picks Fri AM
- done
Dispatch confirms
T3, Fri 08:00–10:00
Nobody was promised a time that had gone. The customer chose again from what was really free.
T4 · Friday
- done
T4 marked unavailable
07:10
- done
4 confirmed jobs affected
- done
Reassigned within capacity
2 jobs to T1 and T6
- waiting
Customers offered new times
2 jobs
- done
Office told
with the list
Two jobs kept their times with another technician; two customers chose new times before anyone drove out.
What it books on its own, and what it doesn't
On its own
- Offers times from the dispatch board's capacity
- Holds a slot briefly while the customer decides
- Confirms routine jobs your rules allow
- Sends confirmations, reminders and changes
Asks dispatch
- Emergencies and safety calls
- Jobs needing two technicians or a special skill
- Requests for a particular technician
- Multi-visit and commercial jobs
Never
- ✕ Confirms a time capacity doesn't have
- ✕ Double-books a technician
- ✕ Moves a confirmed job without telling the customer
- ✕ Treats a request as a booking
What changes from one business to the next
A common starting point is the scheduling or dispatch software you already use as the source of capacity, with Cal.com where there isn't one, n8n or Trigger.dev for the workflows, and PostgreSQL for appointment state your tools can't hold. These are starting candidates, not requirements.
Is a scheduling system the right fit?
Good fit
- Appointments are booked by phone, online and by the office, and they collide.
- Customers are told times before dispatch has agreed them.
- Changes reach customers late, or not at all.
Avoid when
- One person books everything from one calendar and it works.
- Work is planned in long projects rather than visits.
How we'd approach it
01
Understand
As much as the problem needs
We map how the work runs today: who does what, which systems hold the records, and where it breaks.
02
Design
Decided before it's built
Ownership, rules, integrations and exceptions, agreed with you and written down with acceptance criteria.
03
Build
Connected to what you use
We build the scoped system, connect it to the tools you already run, and test it on the cases that matter.
Questions about scheduling systems
Does it replace our dispatch software?
No. Your dispatch board stays the source of capacity. The scheduling system offers times from it, holds and confirms through it, and keeps the customer in step with it.
Can customers book online?
For the job types you choose, inside your area and hours. Everything else becomes a request the office books.
How does it avoid double-booking?
Holds expire, and only dispatch, or a rule you've agreed for routine jobs, can confirm a time, always against live capacity.
What about emergencies?
They skip online booking entirely and go to the on-call line, by the same rules as intake.
Promise only the times you can keep
Tell us how appointments are booked and changed today. We'll show you where promises and the schedule drift apart.