Articles · App ExamplesUpdated June 2026

A crew scheduling app is two apps wearing one name.

A crew scheduling app has to answer two different questions, and most teams only notice they're different once the answers collide: who is working today, and who gets this specific job right now. The first is scheduling. The second is dispatch. Conflate them and you end up with a roster that says someone is on shift while the actual job goes to whoever happened to pick up the phone, or a rotation that hands a call to a truck that clocked out an hour ago. Get that split wrong and it doesn't matter how polished the rest of your field service apps look; the first real call exposes it.

This page untangles the two, using a live example where the split isn't a nice-to-have, it's written into an ordinance: municipal tow truck rotation dispatch.

See scheduling vs. dispatch

The short version

Two jobs, one word.

Scheduling plans who's working, days or weeks ahead. Dispatch decides who gets a specific job, right now, from among the people already scheduled. A crew scheduling app that only does the first will still leave you assigning live jobs by phone and gut feeling; one that only does the second has no idea whether the person it just assigned is even supposed to be working. The rest of this page shows what each layer actually looks like, using a real rotation dispatch system as the example.

Not the same layer

Scheduling, dispatch, and the app that does both.

Both layers involve a calendar and a person's name, which is why they get lumped into one request for "a crew scheduling app." They answer different questions on different timescales, and a system that quietly only builds one of them will surprise you the first time the other one matters.

LayerQuestion it answersTime horizonWhat decides who gets itWhat breaks without it
Shift schedulingWho is on the clock, and when?Days to weeks aheadA manager building a rosterA shift goes uncovered, or two people show up for one slot
Dispatch / crew assignmentWho gets this specific job, right now?Seconds to minutesLocation, availability, equipment, or a rotation orderThe closest truck sits idle while a farther one crosses town
Crew scheduling app (combined)Both of the above, wired to the same rosterBothThe schedule sets who's eligible; dispatch picks among themA job gets assigned to someone who isn't actually on shift

Dispatch, in practice

How a real rotation dispatch actually works.

A tow truck app built around municipal rotation dispatch is one of the clearest examples of dispatch logic anywhere, because a city or state agency has to write the rules down, publicly, in a policy or an ordinance. Two real examples:

  1. 1

    A call needs a truck

    A vehicle is abandoned, blocking traffic, or involved in a collision, and an officer or dispatcher needs it moved. Nobody has pre-picked a company for this specific car; it goes to whichever company the rotation says is next.

  2. 2

    Dispatch offers it to whoever is next on the list

    The California Highway Patrol runs its statewide program this way: a rotation list “equitably distribute[s] service calls from the public through CHP officers,” so the same handful of companies aren't fielding every call.

  3. 3

    The company has a fixed window to respond

    Rotation participation comes with a deadline, not a suggestion. Sunset Valley, Texas writes it into its code of ordinances: fail to get a truck to the scene within 40 minutes of being dispatched, and the call is forfeited.

  4. 4

    Miss the window, and the spot in line moves

    A missed or forfeited call doesn't just cost that job, it costs the company's place in line. The next qualified company on the list gets offered the call instead, and the missing company waits for its turn to come back around.

  5. 5

    Specialized equipment can jump the line

    CHP's program allows an exception: if the job needs recovery equipment the next company on paper doesn't have, the scene manager can go to “the next tow company on the list with the necessary resources to provide the required service” instead. Dispatch, not the roster, makes that call.

None of that is shift scheduling. Every driver in the rotation could already be clocked in on an identical 8-hour shift, and the rotation logic above would still be deciding, call by call, which one of them actually rolls.

Try it

Run a rotation dispatch call

The order below is the current rotation, left to right. Dispatch a call and watch who gets it, and where they land in line afterward.

Truck 1Up next
Truck 2
Truck 3Recovery
Truck 4

Your team, specifically

Which one does your crew actually need?

Not every team that says "crew scheduling app" needs dispatch, and not every team that needs dispatch realizes scheduling is the part they're actually missing.

Try it

Which one does your crew actually need?

Check off what's true for your team. This isn't a scored quiz, it's a way to see which signals you're carrying.

What this points to

Check a few boxes above to see what your crew actually needs.

The scheduling constraint

Where hours of service enters the schedule.

Tow trucks are usually commercial motor vehicles, which puts their drivers under FMCSA's hours-of-service rules unless an exemption applies. The one that covers most local towing is the short-haul exception: a driver is exempt from logging requirements if they operate within a 150 air-mile radius of their normal work location, return there, and are released from work within 14 consecutive hours, with at least 10 consecutive hours off-duty between shifts. See 49 CFR 395.1(e).

150 mi

Air-mile radius

How far from the home base a short-haul driver can operate and stay exempt from logging.

14 hrs

Max on-duty window

The driver must return to the work location and be released from work within this window.

10 hrs

Required rest

Consecutive off-duty hours a property-carrying driver needs between on-duty periods.

That limit belongs to the scheduling layer, not dispatch. Dispatch just needs to know whether a driver is currently on shift and available; it's the schedule's job to make sure nobody gets put on shift in a way that would blow past the 14-hour window in the first place, and to keep an accurate record of when everyone actually clocked in and out. That record-keeping is really what a time clock app for employees is for, and it's a separate concern from either scheduling or dispatch, even though all three end up needing the same underlying data.

Beyond towing

The same split shows up everywhere.

A towing dispatch app makes the scheduling-versus-dispatch split obvious because it's written into public ordinances, but the same two layers exist in almost every trade that takes live calls. An hvac service app fielding same-day no-cool calls still needs a shift schedule underneath it, so there's always someone on-call to dispatch to. Plumbers, locksmiths, and appliance repair run into the identical problem: the schedule says who's working, and a separate decision, made in the moment, says which of them actually drives to this address.

What this page doesn't cover

"Whoever is closest" is its own problem.

A lot of the dispatch logic above, skip to the nearest truck, confirm someone actually arrived, assumes the app knows where each crew member is in real time. That's a real, separate piece of engineering: permissions, battery life, accuracy, and what happens when a driver is in a parking garage with no signal. This page is about the scheduling and dispatch decisions themselves, not how a phone reports its own location; for that half of the problem, see GPS and location in mobile apps.

Picking an approach

What handles the rotation for you?

None of this requires exotic software, but most of the common options quietly fail at least one of the things a crew scheduling app actually needs to do.

ApproachLive dispatchFair rotation enforcedShift rosterWorks offlineWho maintains it
Group chat / phone treeNoNoNoyes, by defaultwhoever's on shift
Paper whiteboard + call logmanuallymanuallyYesyes, by defaultyou, by hand
Generic shift-scheduling appNoNoYesdependsthe vendor
Dedicated dispatch / CMMS softwareYesYesadd-onYesthe vendor
Custom-built crew scheduling appYesYesYesYesyou

Free vs. paid

Is there a free crew scheduling app?

For a small crew that only needs the scheduling half, plenty of free roster tools exist and are genuinely enough. The moment real-time dispatch enters the picture, most free tiers stop being free: rotation logic, live location, and offline reliability in the field are exactly the features vendors reserve for paid plans. Even a build-it-yourself platform like Newly starts at $25 a month, and dedicated dispatch or field-service platforms typically run well past that per seat once dispatch is involved.

When to build your own

Building a crew scheduling app around your rotation.

Off-the-shelf dispatch and scheduling tools are built around somebody else's rotation rules, somebody else's response-time policy, somebody else's shift model. If yours doesn't match, you end up bending your process to fit the software, or bolting a spreadsheet onto the side of it. That gap, a rotation or a schedule that no off-the-shelf tool quite fits, is what Newly is for: describe how your calls actually get assigned and how your shifts actually work, and it builds a real native app around your rules instead of a vendor's.

Get the rotation order, the response-time rule, and the shift model right on paper first, since that's the cheap part to change. Wiring it to live locations, a real database, and offline sync for drivers in the field is the harder half, and it's worth scoping deliberately rather than discovering it mid-build.

FAQ

Crew scheduling apps, answered.

A crew scheduling app plans and tracks who is working, on which shift, on which day. It answers “who is on the clock right now” and “who is on the clock next Tuesday.” It's different from a dispatch app, which decides which specific person or truck gets a specific job once a call comes in. Many businesses that ask for a crew scheduling app actually need both, wired together.

Know your rotation? Build the app around it.

Get the schedule and the dispatch rules right on paper, then describe them to Newly and build a crew scheduling app that actually matches how your calls get assigned.