Home / Blog

How to Schedule HVAC Technicians: A System for 5 to 50 Trucks

HVAC has a harder scheduling problem than most trades, for four reasons that compound. A system that ignores any one of them falls over in July.

By Carson Cloud, Founder, CrewLink5 min readHVAC

HVAC scheduling is harder than it looks from outside the trade, and harder than most general field service advice accounts for. Four characteristics compound:

A scheduling system that handles three of these and ignores the fourth falls over in the first week of July. Here is one that accounts for all four.

Step 1: Classify the work by predictability

Not by revenue, not by trade — by how much freedom you have about when it happens. This classification drives everything else.

ClassExamplesScheduling freedom
FixedEmergency no-heat / no-cool, customer-specified appointmentsNone — the time is the requirement
Semi-flexibleDiagnostics, non-urgent repair, quoted workDays, sometimes a preferred half-day
FlexibleMaintenance agreement visits, seasonal tune-upsWeeks, within a broad window
DeferrableNon-critical follow-ups, optional upgradesFill material

Most HVAC companies schedule these in the order the calls arrive, which means flexible work lands wherever it happened to be booked and then blocks the fixed work that arrives later.

Reverse it. Place flexible work last, into the space that fixed and semi-flexible work leaves behind. That single change is worth more in a peak week than any routing algorithm.

Step 2: Use maintenance agreements as geographic filler

Agreement visits are the most underused scheduling asset in HVAC. They are obligations you have already been paid for, they have to happen within a wide window, and they are usually concentrated in neighbourhoods where you have sold agreements for years.

That combination makes them ideal for filling travel gaps.

Practically:

  1. Group agreement customers by neighbourhood or postcode cluster, not by due date alone.
  2. When a truck has fixed work in a cluster on a given day, pull agreement visits from that same cluster into the surrounding gaps.
  3. Track how far each agreement is from its due window, and let anything approaching the edge escalate to semi-flexible so it does not get filled around indefinitely.

Done well, a meaningful share of agreement work gets absorbed into travel time you were already paying for.

Agreement visit placed two ways
Booked on request, own tripJob time + full round trip
Placed beside existing work in clusterJob time + short hop

Step 3: Hold emergency capacity deliberately

The common approach is to hope for gaps and cannibalise planned work when an emergency lands. That produces the worst outcome available: an emergency handled late and a planned customer rescheduled.

Instead, reserve it explicitly.

The reservation is not idle time. It is the difference between absorbing an emergency and rescheduling three customers to fit one in.

Step 4: Attach real durations to service types

HVAC has more duration variance than almost any residential trade, which makes uniform blocks especially costly.

Build a service catalogue with honest durations drawn from your completion history, and set each at roughly the 75th percentile rather than the mean — you are scheduling against the days that run long.

Two refinements that matter in this trade specifically:

Step 5: Check the drive before promising the time

The step that ties the rest together. In a dense agreement territory, a truck can complete several visits in a morning. In a sprawling install territory, the same truck manages far fewer. The difference is drive, and it is entirely determined by which jobs got promised next to which.

Before a slot is offered, the question worth answering is whether a qualified crew can physically reach that address by that time, given everything already on their day — with travel computed from where the truck will actually be when the previous job ends, at that hour. Slots that fail never get offered, so nothing needs rescuing later.

In July, this is the difference between a day that holds and a day your dispatcher spends rebuilding.

On peak season: a schedule that works in April and breaks in July was never working — April was just forgiving. If you are going to change how you schedule, change it in the shoulder season and let the team get fluent before the volume arrives.

Step 6: Watch four numbers through the season

Review weekly in shoulder season, daily through a peak. The full set and how to read them together is in the scheduling KPIs worth tracking.

What to take away

  • Classify HVAC work by scheduling freedom, then place flexible work last, into the space fixed work leaves.
  • Maintenance agreements are geographic filler — cluster them and absorb them into travel you are already paying for.
  • Reserve emergency capacity deliberately against your own seasonal demand, with a daily release time.
  • Attach honest per-service durations at roughly the 75th percentile, and schedule diagnosis separately from repair.
  • Check that the drive fits before promising a time; in peak season this is what separates a day that holds from one that gets rebuilt.
  • Change how you schedule in the shoulder season, not in July.

Common questions

How do you schedule HVAC technicians efficiently?

Separate the work by predictability first. Maintenance agreements are flexible and schedulable weeks ahead; emergency calls are not. Place the flexible work to create a dense, low-travel base, hold deliberate capacity for same-day calls, and check that each appointment is physically reachable before promising it.

How should HVAC companies handle maintenance agreements in scheduling?

Treat them as the geographic filler they are. Because they are flexible within a wide window, they can be placed to minimise travel around fixed commitments — clustering agreement visits by neighbourhood and scheduling them into the gaps between less flexible work.

How much capacity should an HVAC company hold for emergency calls?

Enough to match observed same-day demand for that week of the year, which means looking at your own history rather than a fixed percentage. Hold it as deliberately reserved capacity rather than hoping for gaps, and release it on a rolling basis if it is unclaimed by a set time each day.

See your own day on it

CrewLink builds live travel time into availability, so the only slots it offers are ones a crew can physically reach. Walk through it with your own territory and service times — not a demo account.

Book a walkthrough