Generate Visits and Copy Jobs Between Seasons (Jobs)
Last updated July 6, 2026 · Admins and office staff
There are two ways new visits land on the calendar in bulk (rather than adding appointments one at a time): generating visits from program rounds, and rolling recurring jobs into a new season (which generates a rolling window of visits). This article covers both, plus how to copy a job to another season and change a job’s season. For scheduling a single appointment, use the Schedule Appointment button on the Job Summary instead.
Before you start
- Jobs must be Active — bulk generation skips jobs that are inactive, completed, or on hold.
- The linked season must be Active. Visit generation is skipped for seasons that are Planned, Suspended, or Ended — this is the single most common reason “nothing generated.”
- For program-round generation, the job must be linked to the program, and the program’s rounds need date windows. See How to Set Up Seasons and Programs.
The active-season requirement
Whenever visits are generated, the system checks the season first. If the season isn’t Active, generation stops and you get a notice like “Season ‘Summer 2026’ is not active — visit generation skipped.” Activate the season before generating:
- Go to Work > Seasons and open the season.
- In Quick Actions, click Activate Season.
The Seasons list also shows a reminder banner when a Planned season has reached its start date, but activation is always a manual step — the system never activates a season for you.
Steps
Option A — Generate visits from program rounds
Program rounds are the engine for fertilization/PHC and other multi-round work. Each round has a date window, and generation creates one visit per active enrolled job inside that window.
- Go to Work > Programs and open the program to reach its Program Summary.
- Then either:
- One round: click the Generate button (calendar icon) on that round’s row, and confirm. It creates visits for all active jobs linked to the program, inside that round’s window.
- All rounds at once: in Quick Actions, click Generate All Visits, and confirm.
- Read the result. If some rounds produced nothing, you’ll get plain-language notices, for example:
- “Round ‘Round 1’: window 03/15/2026 – 04/15/2026 has already passed — visit skipped.” (the round window is entirely in the past)
- “Season ‘…’ is not active — visit generation skipped.”
- A note that all dates in a window are blacked out.
- Open Schedule > Calendar to confirm the new visits, then assign crews and routes.
Re-running generation is safe: it won’t duplicate a visit that already exists for a round/job pair. Completed rounds are skipped by “Generate All.”
Option B — Roll recurring jobs into a new season (rolling window)
When you renew recurring maintenance for a new service year, the Season Planner copies each recurring job forward and generates a rolling window of visits from its recurrence rule — a fixed number of weeks of visits from the new season’s start date, rather than the whole year at once.
- Go to Work > Season Planner.
- Pick a Source Season (the year you’re renewing from) and a Target Season (the new year — it must be different from the source).
- If the source season has jobs that still need service plans, use Create Plans From Season to set them up.
- In the Service Plans grid, check the plans you want to renew, then click Renew Selected. Each selected plan is copied into the target season and gets its rolling window of visits generated automatically.
The rolling window defaults to 8 weeks from the target season’s start date (capped at the season’s end date). A nightly background process is intended to extend these rolling windows over time, so you don’t have to generate the entire season up front.
Copy a job to another season
Use this to duplicate one job into a different season — for example, seeding next year from this year’s job.
- Open the job’s Job Summary.
- In Quick Actions, click Copy to Season. A pop-up opens.
- Choose the target season (required).
- Optionally tick Copy job products/services to bring the line items across too. Leave it unticked to copy just the job shell (name, customer, job site, description) with no line items.
- Click Copy Job.
The new job is created in the selected season with the same details and is set to Estimate status. You’re taken to the new job’s summary page. Note: this copies the job record and (optionally) its line items — it does not copy the original job’s appointments.
Change a job’s season
Use this to re-file an existing job under a different season (or unlink it entirely) without creating a copy.
- On the Job Summary, in Quick Actions, click Change Season.
- Pick a Season, or choose “– No Season (Unlink) –”.
- Click Change Season. The page reloads with the new association.
A warning in the pop-up notes that changing the season may affect recurrence rules and scheduled visits — review your schedule (and regenerate visits if needed) after changing it. You can also change the season directly on the Job Details edit form via the Season (Optional) dropdown.
What happens next
- Program rounds: visits appear on the Calendar and on each job’s Appointments tab, ready to route. Bill them from the program’s round-billing actions or the Sales page.
- Season Planner renewal: each renewed job appears in the target season with its first rolling window of visits; the source plan is marked “Renewed.”
- Copy to Season: the new Estimate-status job is ready for you to review, price, and schedule.
Tips & best practices
- Activate the season before generating — it’s the number-one cause of empty results.
- Test with one job first. Link one job, generate one round, and confirm the dates before enrolling your whole list.
- Windows must be realistic. A round whose window is entirely in the past is skipped by design — update round windows when rolling into a new year.
- Copy with products when seeding next year, so the new job carries pricing; copy without products when you only want the shell.
Troubleshooting
- “Season ‘…’ is not active — visit generation skipped.” — activate the season (Work > Seasons > Activate Season), then generate again.
- “…window … has already passed — visit skipped.” — the round’s window is in the past. Edit the round’s Window Start/End on the Program Summary to the current year.
- Some customers got no visits — only Active jobs that are linked to the program get visits. Check each job’s Status and its program link.
- All dates blacked out — every date in the round window is a blackout date; adjust the window or the blackout dates.
- Renew Selected is disabled — you must pick a Target Season and have at least one service plan listed; plans already renewed to the target are disabled in the grid.
- After changing a job’s season, visits look wrong — regenerate visits for the new season; changing the link doesn’t move existing appointments.