Put a Route on the Calendar

Read your set routes as a calendar — one row per route, one column per day — then book a day, move a rained-out run, or flip the same week to crew lanes and read it by person.

Updated September 30, 2026

A set route is a plan: which sites, in what order, and who runs them. Until somebody applies it, that plan appears on no calendar at all — and once applied, it dissolves into separate job cards. The Saved Routes view on Schedule is the route itself on a calendar, so you can see where your week's routes are and put the missing ones on a day.

Open Schedule and switch the first toggle from Jobs to Saved Routes. The date range, Day / Mon–Fri / Mon–Sun / Month buttons, and the work-type tabs all keep working — you are reading the same window a different way.

That toggle has a third setting, Crew, which reads the same week by person instead of by route. It is covered further down, in Read the same week by crew.

What the grid shows

Every set route gets a row, whether or not it runs this week. The row header carries the route's colour, its cadence, its stop count and rough hours, and who it is assigned to.

CellWhat it meansWhat you can do
Solid block in the route colourBooked. Real jobs exist that day. Shows the stop count, rough hours, and how many are done.Click to open the stops. Drag sideways to move the day. Use the ⋯ menu for more.
Dashed Plan cellThe route's cadence says it runs this day, at least one stop is due that day under an agreement whose dates include it, and nothing is booked yet.Click to book it.
Empty cellNothing planned, nothing booked.Click to book the route on that day anyway.
Amber columnA company holiday.Still bookable, but you are asked to confirm.
Grey, no +A day that has already gone by.Nothing — you cannot book the past by accident.

Blocks show the stops you can see

The grid reads the jobs already loaded for the window, so a Crew, Tags or Territories filter narrows what a block counts. When anything is narrowing, counts are prefixed with ~ and a Filtered chip appears above the grid. Those filters stay on screen in this view — clear them there for a true count.

Very large weeks have a second limit: only so many jobs load at once. When the window holds more than that, an amber line above the grid names both numbers — "4,200 jobs match this period; only 3,000 are loaded" — and the blocks below it are short by the difference. Narrow the range or the work-type tab until it disappears.

The bottom row, Booked that day, totals stops and rough hours per column, and Not on a route shows how much other work is already on each day — so you can see that Tuesday is not really free before you drop a seven-stop route on it.

Book a route on a day

  1. Click the day

    Click an empty or dashed cell in the route's row. The Apply dialog opens with the route and the date already filled in and locked — the row said which route, the column said which day.

  2. Check the preview

    Each stop is listed with what will happen: a job already on this route, an existing job that will be linked, or No job on this date (which is created for you when Create Jobs for stops that do not have one yet is ticked).

  3. Apply

    The cell becomes a solid block. The crew sees the day on their phone. Sites that could not be booked are listed with the reason — for example no active agreement, outside agreement dates, or active permit required.

OpsVara refuses three days and asks before doing them anyway: a company holiday, a date in the past, and a day the route is already booked on.

A stop is only booked on a day its agreement covers

Applying reads each site's agreement dates as well as its days. A site whose agreement starts later, or has ended but is still marked active until the automatic expiry catches up, is skipped as outside agreement dates and gets no new job. A job that is already on that day for the stop is still added to the run — only creating one is refused. When a site holds both an old agreement and its renewal, the job is linked to the one whose dates include the day, not to whichever was edited last. When a site has agreements for several kinds of work, the job is linked to the one for the stop's own work. Agreements with no start or end date are treated as open, the way they always were.

Applying twice re-orders the day

Applying a route to a day it is already on does not add stops — it rebuilds the order, including any stops on that person's day that belong to other routes. Open the existing run instead unless you mean to rebuild it.

Book every route at once

On Dispatch → Saved Routes, Put on Calendar opens Put Routes on the Calendar. SOLIVEN lays out which route goes on which day over the window you pick (Spread over 7, 14, 21 or 30 days), most urgent routes first, one route per crew member per day. Nothing is written until you press Book N Routes, and Skip drops a row from the plan.

Start from begins on your company's today, read in the Company time zone on SettingsCompany, not the day on your computer's clock — so an office working late, or from another time zone, does not start the plan on the wrong day. Only when the company time zone is not available does it fall back to your computer's date. Change it to start the plan later.

The plan only offers a route on a day that would put work on the calendar: at least one stop due that day has an agreement whose dates include it — the same rule as the dashed Plan cells. A route that runs in the window but has no such day is listed under not in this plan with the reason. Each booked day then goes through the same apply as a single route, so stops not due that day, and stops outside their agreement dates, still get no job.

After you book, the summary counts the routes that went out and the jobs created, and lists how many stops were skipped on each. A route on which every stop was skipped is listed apart as booked nothing and is not counted as run, so its Never run or days since last run chip stays. To see why a stop was skipped, open the route and use Apply on that day.

Move a rained-out day

Drag the solid block sideways to another day in the same row. The confirmation names both days and tells you how many stops will actually move.

The move keeps the stop order, writes the reason you type into each job's history, and notifies any crew already clocked in. It is deliberately partial: stops that are completed, cancelled or already invoiced stay where they are and are listed back to you.

Dragging only works in the week views — there is nowhere sideways to go in Day or Month. In Day and the week views the block's ⋯ menu has Move to another day…, which lets you type the destination instead. The Month strip is read-only, so move a day from a week view or from Day.

Turn a one-off into a pattern

Routes start out manual: they run when somebody applies them, so they never show a dashed plan cell. Once a day has gone well, open the block's ⋯ menu and choose Repeat weekly.

Pick the days it should run. From then on those days show as dashed plan cells. If the route was a draft, saving the repeat activates it.

Repeating is not the same as booking

A repeat only decides where the dashed cells appear. Nothing is booked until you click one — unless you also tick Also book it automatically, which is off by default on purpose. Watch a pattern for a week or two before handing it the calendar.

Knowing which route to plan first

Two signals sit on the grid, and neither one is the route's colour — that stays the route's identity, the same hue it wears on the map and in the builder.

The amber chip beside a route's name is its cadence — how often the route actually goes out, measured against how often it says it does. 12d since last run means the route is past its own rhythm. Never run means it has a cadence but has never been put on a day. A manual route never shows one, because it has no rhythm to be late against.

There is no green "healthy" chip on purpose. A quiet row means nothing this page can see is wrong, which is a smaller claim than "everything is fine" — the Schedule page knows when routes went out, not whether their sites are overdue against their contracts.

For that second question, open route health on Dispatch → Saved Routes → Health. That board is built per site, from contracts and last visits, and reports the soonest site on each route rather than an average — a route of eight healthy pools and one thirty-days-overdue account is a route to run today, and averaging would hide exactly that.

A line on a booked block counts what needs looking at — 2 flagged · 3 past due. Flagged is the dispatch flag from the job cards; past due is open work on a day that has already gone by. It reads the same in the crew view, because it is the same block.

Why some sites sit outside their route's block

A block holds the jobs that were booked as part of that route's run. A site can be a stop on a route and still have its visit created some other way — by the recurring contract scheduler, or by hand — and that job was never tied to a run, so the grid cannot put it in the block.

Those jobs say which route covers them: West Austin — not in the run. To fold them in, apply the route to that day — applying adopts matching jobs rather than duplicating them. To have future visits tied automatically, turn on route adherence for that work type in SettingsWork Types; it ships off, and it also affects how dispatch assigns work, so it is a real decision rather than a display toggle.

The month strip

Switch to Month and the grid becomes one dot per day: filled where the route ran, an outline where it was planned, and nothing where it was neither. It is read-only — a five-stop run is a dot at that size, and an accidental booking there would be hard to undo. Use it to see at a glance which routes kept their rhythm this month.

Read the same week by crew

Switch the toggle to Crew and the rows become people instead of routes. It answers the question the other two views cannot: who is carrying what this week, and against how much time. A route row hides it — two routes on one person read as two light days — and the Jobs grid hides it too, because a day column mixes six people together.

A lane appears for each person who holds work in the window, not for everybody on the roster, plus Unassigned pinned at the top whenever something has nobody on it. The row header carries the job count and an hours meter, and each cell is one person's day: the route runs they are on first, then the loose jobs underneath.

What you seeWhat it means
Teal cell with a time rangeThey are rostered to work that day. The range is their hours.
Grey cell, OffNot a working day on their weekly hours.
Amber cell, Time offApproved time off.
Yellow cell, Leave pendingTime off requested and not yet approved.
An amber status line on a cell that still holds jobsWork is booked on a day they are not down to work. This is the thing the view is for.
+1 crew on a jobA second person is on that job. Hover it for the names.

Hours here are estimates, and say so

Every hours figure keeps its ≈. A job carries no duration field, so the only hours OpsVara can estimate come from a route's on-site and drive estimate shared out across the stops actually booked — which is why the meter reads ≈12.5h routed of 40h working. Loose jobs add to the job count and nothing to the hours.

A job appears in one lane only

A job with two people on it is drawn in the primary's lane with a +1 crew chip, never in both. Drawing it twice would double that day's job count, both lanes' hours, and the column total at the same time.

Move a job to another day

Drag a loose job chip sideways to another day in the same row. The same Reschedule dialog opens as on the Jobs calendar, with the day already set, and you can still adjust the time before confirming.

Dragging onto another person's row is not offered — the other rows go pale while you drag to show it. Moving a job across a day and moving it across a person are different decisions with different consequences, and reassignment lives on Dispatch → Assign Work. Route blocks in a crew cell are not draggable either: a block there is one person's share of a run, so dragging it would quietly move stops that are not in the cell you grabbed.

Dragging is off in Day view, for the same reason as the route grid — one column, nowhere sideways to go.

Crew lanes have no month

Choosing Month while Crew is selected shows the month calendar with a note, and leaves your Crew choice alone — go back to Mon–Fri or Mon–Sun and the lanes return. Thirty columns of chips is not a readable week, and the honest month-scale answer to "who is around" is the availability grid on Office Ops → General.

Route cards on the Jobs calendar

Back on the Jobs view, a day that holds route work now shows one card per route — the route's name, its stop count, and a bar down the left in the route's colour — instead of a separate card per stop. A Group by route button above the calendar turns it off, and it only appears once something on screen is actually on a route.

The card's fill still means what it always did: flagged, late, completed, or cancelled. Route identity is the coloured bar, never the fill — and the same rule holds on the route grid, where health arrives as chips and words rather than as a change of colour.

Route colours are drawn from a fixed palette that deliberately avoids red and amber, so a route can never be mistaken for a warning. On the route health map the pin is the route and the ring around it is the urgency — two separate things, in two separate channels.

Ponds and lakes keep their own grouping

Lake and pond stops still group by water body and by customer, which is how those crews work. Route grouping applies to everything else.

Verify it worked

  • The cell you clicked is a solid block with the stop count you expected.
  • Switch to Jobs for the same week — the route's card is on that day, in the route's colour.
  • Switch to Crew — the run shows in the assignee's lane on that day, and their hours meter went up.
  • Open Dispatch for that date; the stops are assigned in the route's order.

Which route covers a site?

A site's own page answers this now. Open a site and look for SET ROUTES: one line per route the site is a stop on, with the work type, the site's place in the driving order ("stop 4 of 8"), the route's days, and who runs it. The route name links straight to that route on Dispatch → Saved Routes, with the list pinned to it — Show all routes clears the pin.

Membership is per work type, so a site can appear more than once: a pool on a weekly cleaning route and on a separate repair route is two answers, not one.

A site on no route says so, with a link to add it to one. That is not a fault — it just means the site's visits are scheduled one at a time rather than as part of a round.

Draft routes still count as membership

A site on a draft route shows the route with a Draft tag. The site really is on it; the route just will not book anything until somebody activates it.

Where else this appears

Office Ops → General has the same grid as its third calendar mode, for the week it is showing. Booking, moving and repeating all work there; dragging does not.

When something looks wrong

What you seeWhyWhat to do
A row with no dashed cells all weekThe route is a draft, is manual, has no stops, or its season ended — or none of its sites has an agreement covering those days.The row header says which. Any route can still be booked by hand.
No agreement covers these days on a rowThe route runs on days in view, but on none of them does a stop due that day have an agreement whose dates include it. Auto-apply will not book those days.Check the sites' agreements: none, or dates that start later or have ended. Add or renew one, or book the route by hand.
A route runs two days but only one has a dashed cellNone of its stops is due on the other day by its agreement's days, or none of the stops due that day has an agreement covering it.Nothing, if that is what the agreements say. Change an agreement's days, or pin a stop's Visit days, to put work on that day.
Next run Mar 3 on a quiet rowThe route does not run on any day in the window you are looking at — a seasonal route in the off season, for example. The date comes from the route's days alone.Nothing. Page forward to that week, or book it earlier by hand.
No anchor week — books weekly on a rowAn every-other-week route with no anchor date runs every week, because nothing says which week of the cycle this is.Set the anchor week in the route's cadence.
Booked · hidden by a filter in a cellThe day holds a run, but its stops are not on screen — either a filter hides them, or the window hit the job limit.Clear the filters above the grid. If none are set, look for the amber "only N are loaded" line and narrow the range.
→ moved to Wed in a cellThe run that was planned here was moved, and its stops are now on the day named. If they moved again after that, the cell names where they ended up, not the first hop. A date instead of a weekday — Sep 16 — means they landed outside the week you are looking at.Nothing — this is the calendar remembering, so it does not re-offer the day you just cleared. If every stop came back, was cancelled, or was deleted, the note disappears and the day is bookable again.
A block says fewer stops than the route hasStops were rescheduled, cancelled, or never created.Open the stops to see which, or re-apply on a clear day.
Couldn't load availability above the Crew viewThe availability endpoint is office-tier. Your role can see the schedule but not the roster, or the call failed.The lanes and the work still show, unshaded and without the hours meter. Ask an admin, or read availability on Office Ops → General.
No availability on file on a crew rowThey hold work in the window, but no availability came back for them — usually a deactivated user still on a future job.Reassign the job, or set the person's hours under Settings.
Somebody you expected has no laneLanes are for people with work in the window.Nothing — they have nothing booked. Check the roster on Office Ops → General.

Frequently asked questions

What is the difference between a solid block and a dashed one?

A solid block is booked — real jobs exist on that day and the crew can see them. A dashed "Plan" cell is only the route's pattern saying it runs that day; nothing is booked until you apply it.

Why does my route show a row but no plan cells?

Plans need an active route with a cadence. A draft route, a manual route, a route with no stops, and a route whose season has ended all show a row you can still book by hand, but no dashed cells. The row itself says which of those applies. An active route also shows no cell on a day where none of its sites has an agreement covering that day — for example every stop's agreement starts next month. When that empties the whole row, the row header says "No agreement covers these days".

My route runs Monday and Thursday. Why is there no Plan cell on Thursday?

Because nothing on it is due Thursday. A Plan cell is drawn only on a day when at least one stop is due by its agreement's days and has an agreement whose start and end dates include that day. If every stop's agreement says Monday, Thursday stays empty. You can still click the empty cell to book the route there by hand.

What does "outside agreement dates" mean after I apply a route?

The site has an active agreement — for that work, or, when it has none for that work, for other work — but no agreement's start and end dates include the day you applied. It starts later, or it has ended and has not been marked expired yet. No job was created for it. A job that was already on that day for the stop is still added to the run; only new jobs are refused. Check the agreement's dates on its contract page, or apply the route on a day the agreement covers.

Can I drag a route to a different crew member?

No. Dragging moves a booked run to another day and nothing else — the assignee stays. Change who runs it from Dispatch, or from the route itself.

I applied a route to the wrong day. What now?

Drag the block to the right day, or use Move to another day on the block's menu. Both keep the stop order.

Why does the Crew view show fewer people than we employ?

A lane appears for somebody who holds work in the window, not for everybody on the roster. A 30-person tenant would otherwise get 30 rows of which four have anything on them. For the full roster and who is off, use Office Ops → General.

A job has two people on it. Why is it only in one lane?

Because counting it twice would double that day's job count, both lanes' hours, and the column total. It is drawn in the primary's lane with a "+1 crew" chip, and hovering the chip names the others.

Why are the hours on the Crew view approximate?

A job carries no duration, so the only hours OpsVara can estimate come from a route's on-site and drive estimate, shared out across the stops actually booked. That is why every figure is written with a ≈, and why the label says "routed" — loose jobs add no hours at all.

Can I drag somebody's job onto a different person?

No. Dragging in the Crew view changes the day, not the assignee — the other rows go pale to show it. Change who is on a job from Dispatch.

Related guides