Jobber's Schedule With Eight Vans: Where It Struggles, and the Custom Calendar We Built Instead
Jobber is a solid system of record, and for one or two crews its calendar is fine. At eight vans running a geographic round, the owner I built for described it as congested. Here is what a multi-van window cleaning round needs from a schedule, and how to get it without leaving Jobber.
Part of the window cleaning automation series. This is the calendar from the 8-van case study.
Where does Jobber's schedule struggle for a window cleaning round?
Not in storing the work, but in planning it. Jobber holds clients, recurring jobs and visits well. The friction starts when the question is geographic and multi-van:
- The van is not the planning unit. Jobber schedules team members. Vehicles exist only on some plans, the API cannot create team members, and nothing ties a vehicle to a patch of postcodes. A round is planned by van, and crews swap vans on the morning.
- No sense of territory. Nothing tells you a job is sitting in the wrong van's patch, or that CF83 has 63 jobs today and CF24 has one.
- Busy days get crowded. A day with a few hundred visits across eight vans is hard to read in a general-purpose calendar.
- No capacity view. It shows jobs, not whether each van has a full day in all-around and front-only terms.
None of this is a criticism of Jobber. It is a general field service tool. A window cleaning round is a specific shape, and the planning view should match it.
What does a window cleaning schedule need?
Day view by van
One column per van, jobs positioned by time, coloured by van or by status. A job in the wrong patch is obvious.
Area chips
The postcode areas with work that day and how many jobs each, across the top. Lopsided days are visible before anyone rings.
Full postcode on cards
CF24 1UQ, not just CF24, because an area can cover miles and the streets are what matter.
Totals that matter
Upcoming, completed, late, unscheduled and skipped. Skipped is the one to watch.
Week and month
Week shows every job; month shows a count per day, because thousands of chips is unreadable. Click a count to open the day.
Drag and drop, written back
Move a visit and it moves in Jobber. Move it in Jobber and it moves here within seconds.
Why not just read Jobber live?
Because a round at 7am is a lot of reads at once. The first version read each day straight from Jobber whenever someone opened it. On launch day, with every cleaner opening their phone at the same time, that overloaded Jobber's API.
The design that works keeps the planning layer's own copy of each day in a database and serves screens from that. The copy stays honest three ways:
- Jobber webhooks report every visit change as it happens, including changes made inside Jobber.
- Every change made in the app updates the copy immediately.
- An hourly check catches anything the other two missed.
Days further out, weeks five to eight, are fetched slowly in the background, about a day a minute, so Jobber is never flooded. If Jobber is slow or down, the crew still sees their round, and any change that cannot be written fails with a clear message instead of pretending it worked.
Should you build a custom calendar?
Only if the planning view is genuinely costing you time. With one or two vans, Jobber's calendar plus good territories is usually enough. Past three or four vans, if someone is spending every evening building tomorrow by hand, a planning layer pays back quickly, and it is the foundation for the parts that save the most: territories, capacity targets and missed-visit handling.
Running a window cleaning business on Jobber?
I build the scheduling, routing and automation layer Jobber does not have: vans and territories, daily targets, missed-visit handling and lead intake, all writing back to your Jobber account. Tell me how your rounds work and I will tell you honestly what is worth building.
Book a Free 30-Min CallFrequently asked questions
What are Jobber's scheduling limitations for window cleaners?
Jobber schedules team members rather than vans (vehicles are only on some plans), has no built-in concept of postcode territories, and does not measure each van's day in capacity terms. Its calendar also becomes hard to read on days with hundreds of visits across many vans.
Can you build a custom calendar on top of Jobber?
Yes. Jobber's GraphQL API lets an external app read visits and move them, and its webhooks report changes made inside Jobber, so a custom calendar can stay in sync while Jobber remains the system of record.
Will a custom calendar hit Jobber API limits?
It can if it reads every day live. Serving screens from a synced copy, updated by webhooks, by the app's own changes and by an hourly check, keeps API use low even when a whole crew opens the app at once.
More on window cleaning operations
- Scheduling by van and territory. The model behind the van columns.
- An AI scheduling assistant. Changing the schedule in plain words.
- The complete Jobber automation guide. How custom automation connects to Jobber.