A field-service schedule models each job as happening on a date, not starting at a time. That single choice — day granularity instead of minute granularity — is what keeps the schedule honest about how the work actually happens, and it removes a surprising amount of accidental complexity.
Why a day, not a time slot?
A crew rarely keeps a 9:15 appointment the way a dentist does. They take a list of sites and work a route — mowing, cleaning, or servicing several properties across a morning in whatever order is efficient on the day. Pinning each job to a clock time is false precision: it implies a commitment the work doesn't make, and it drags in machinery that earns nothing — slot-collision rules, per-job timezone math, a calendar grid fine enough to need zooming on a phone.
Model the job as "on Tuesday" and the schedule says what's true: this is the day it's planned for. The crew owns the order within the day. Rescheduling becomes "drag it to Wednesday," not "find a free 45-minute slot." (And on a phone, dragging a card across a day grid is hard enough — see drag is a desktop idiom — without also asking the operator to land on a time.)
How recurring work stays stable
A recurring service — weekly, fortnightly, monthly — is described by a recurrence rule with an explicit start anchor: the date the cadence is measured from. The anchor is deliberate, not "whenever this was last regenerated." If the rule re-materialises, a fortnightly job stays on its original week instead of silently flipping to the other fortnight. The anchor is the difference between a cadence that holds for years and one that drifts every time the schedule is rebuilt.
Editing a series: the calendar model
Recurring jobs borrow the mental model people already have from consumer calendars. An edit asks for scope:
- This occurrence — move or change a single visit. The rest of the series is untouched. (Use it when one Tuesday is a public holiday.)
- All future — change the cadence, rate, or assignment from here on. The rule is re-materialised and future planned visits are respun on the new pattern; visits already done are left alone.
Keeping those two operations distinct is what lets an operator fix one bad date without rewriting the contract, and change the contract without hand-editing fifty visits. Which of those edits bills the client, and when, is a separate axis — covered in when completing a job bills the client.