Recurring Visits
Set up recurrence schedules that generate visits automatically, and pull visits from on-demand contracts with Generate Visits.
Recurring services — weekly mowing, monthly plant health care, seasonal contracts — are jobs whose visits BranchSite generates for you. Instead of scheduling each occurrence by hand, you define a rule once and the engine keeps the calendar filled.
Set a job's cadence
On the job form, the Cadence field decides how visits are produced:
- One-time job — you schedule visits manually.
- Recurring service — a pattern rule generates visits automatically.
Some accounts also offer on-demand and custom-monthly recurrences, described below.
Pattern recurrences
For a recurring service, set the Frequency — Weekly (pick the days of the week and how many weeks apart), Monthly (pick the day of the month), or Every N days — plus a Start date and an Ends choice: Never, On a date, or After N occurrences. A live preview shows the next occurrences so you can sanity-check the rule before saving.
You also choose a Pricing basis (Per visit, Monthly, or Per contract), which controls what the estimate total means, and series defaults: a Default time (or all-day), a Default location, Default assignees (the crew auto-assigned to every generated visit, with one marked Primary), and Default tags.
Note: Open-ended schedules generate up to 365 days of visits at a time. New visits appear automatically as that rolling window advances — you never need to "top up" a pattern series.
Once the proposal is accepted, the series banner on the job shows the rule, upcoming/completed counts, and controls to Edit series, Pause series, or End series. Pausing halts new generation while keeping existing visits on the calendar with a pause marker; resuming after a long pause asks whether to skip the missed visits or generate them retroactively. Ending the series cancels future open visits and preserves history.
Editing one visit vs. the series
When you edit a visit that belongs to a series, an Edit scope choice appears: Just this visit, This and all future visits, or All visits in series. A visit you've hand-edited shows an Edited badge, and its form offers Reset to series defaults to re-align it with the rule.
On-demand contracts and Generate Visits
Some contracts don't follow a calendar pattern — snow pushes, storm cleanup, service banks. These are Recurring (On-Demand) jobs: the customer prepays for Contract Entitlements (items with a quantity, or unlimited), and you pull visits from that bank whenever the work is needed.
The Generate Visits button opens the materialization tool. You'll find it in three places: the Calendar header, the Jobs page header, and the Route Planner's tools cluster — plus on an active on-demand contract's own series banner (scoped to just that contract).
- Click Generate Visits. Browse available entitlements By Item or By Job, or search clients, jobs, and items. Each row shows how much of the entitlement remains.
- Select what to pull, then continue to scheduling. Set a shared Date, All day or Start/End times, and optional Notes.
- For weather work, name the Storm / event — every visit generated under that name is grouped together, and reusing the name on later pushes keeps the whole storm connected.
- Expand Per-row overrides to give individual visits their own date, times, or Crew.
- Click Schedule Visits. Pulled visits appear on the calendar with an on-demand marker, and the contract's remaining entitlements tick down.
Contract admins can adjust the bank later with Manage Entitlements (you can't reduce below what's already consumed), and pause or end the contract from its banner.
Custom monthly
Recurring (Custom Monthly) jobs take a 12-month pattern of Visits per month. At the start of each month the engine materializes that month's visits with TBD scheduling, so your dispatcher assigns actual days as the month unfolds. A Materialize control on the series page lets you kick off a month early or backfill one.
When generation fails
If a series' nightly generation run fails, the series page lists it under Generation failures, and admins have a Retry that re-runs the engine for that single rule. A visit is never silently skipped — the failure stays visible until a generation run succeeds.