Thoughts

Why route-aware booking matters more than pretty scheduling UI

← All thoughtsHomeAI markdown

Most online booking platforms work the same way. The customer picks a day and time from a generic calendar and the job goes on the schedule without any concern for the existing route. Someone in the office sorts out the mess later or misses it and the technician drives an insane route that day. Calls land that are outside the service area, sometimes in different states. Jobs stretch twenty miles apart. A technician can lose two hours of productive time because the software accepted a job without knowing how it fits in the schedule.

I have watched this happen. I have driven those routes.

The real cost isn’t the bad booking

A single out of area job can collapse a pretty tight route. The technician drives past four other jobs to get to a job that should have been declined or scheduled to a different day. What makes it worse is two days later the technician lands in the same area when they could have been combined. The business can’t do anything about it other than turn off the online booking feature.

This isn’t really a dispatch problem but more of a booking problem. By the time dispatch sees it, the damage is already in the schedule. Now the call has to be rescheduled and the entire point of the online scheduling is out the window.

Building booking around the route

Online booking in Serenity (my custom CRM) never started from a generic calendar, because that was the part of every other platform that kept putting jobs in the wrong place.

My system doesn’t give the customer availability before it knows where they are and if that day/time even makes sense. Booking starts with asking for a zip code and checks if that address falls inside my service area/territories. The system looks at where the jobs are already scheduled for that day. It goes further than if a time slot is open, but asks itself if adding this job to that day makes sense on the route. Just like a skilled call taker in the office.

If Vent Busters is already running around their neighborhood on Tuesday, that is the day the system wants to fill.

The customer still feels like they are choosing. Behind the scenes, the system is protecting the schedule.

Pipeline scheduling isn’t a new idea

This isn’t really a new concept. In the early 2000s, I ran territory design and pipeline scheduling in New York. We were one of the largest appliance services in the metro. Things like zip code routing mattered. Running 50 technicians in tight routes mattered. The schedule had to flow, not just take jobs because we had an open time slot. That was how we kept a fleet of technicians productive in dense areas.

When I started shopping for scheduling software years later for Vent Busters, every platform looked the same. Nice modern calendar. Drag and drop from one day to another. Color-coded techs if you are lucky. What none of them asked during booking was the question we lived by in my old business: does this job belong on this truck’s day or are we just filling a hole because the slot is empty?

Serenity is my attempt to fix that for the kind of focused service business Vent Busters is. One specialty, one region, tight routes. The booking system should understand the business in order to protect the schedule automatically.

What this means for a service business owner

The generic calendar widget books jobs just fine. The problem is that it books jobs without any understanding of whether they fit in your schedule.

Route aware scheduling is not a complicated concept. It is complicated to build because it requires the booking system to know things a generic calendar widget does not: territories, technician coverage, route density, preferred day patterns. That is an infrastructure problem, not UI.

The UI can be simple. The logic behind it has to be specific to your business.


Serenity is the CRM and booking platform I built to run Vent Busters. Read the case study.