Trip templates
Save a plan once and let it generate trips on a recurrence, with blackout dates, a generate-ahead window and a preview before anything is created.
A trip template is a saved plan plus a recurrence. The plan is everything a trip needs — type, origin, priority, the whole route with its tasks, optionally a driver and a vehicle. The recurrence says which days it should run. Cooriroo then creates the trips for you, ahead of time, on the window you choose.
Templates are for work that repeats: a morning restaurant run, a Tuesday and Thursday warehouse shuttle, a monthly service visit. For a route you will run once, or twice, use the trip wizard directly — it can also start from a template or duplicate an existing trip.
Who can do this
- Role
- Administrators
- Permission
trip-templates:readtrip-templates:write
Templates are admin-only — drivers never see them, only the trips they produce. Your plan may cap how many templates a tenant can hold.
Terminology
Your organisation can rename these. If your screens say something else, this is what they mean here.
- Trip
- One journey with an ordered list of stops. Renaming it renames templates too, so a "route template" is the same object.Rename it in Customization → Terminology
What a template holds
Three groups of settings, and the route.
- The plan. Name, description, trip type, priority, category, origin, estimated duration, notes, tags and any custom fields. A driver and a vehicle can be attached, and every generated trip inherits them.
- The recurrence. A repeat rule, the date it starts from, and the time of day each trip should be scheduled for.
- The generation settings. How many days ahead to create trips, and any dates to leave out.
- The route. The same stops a trip has — location, linked destination, geofence radii, time on site, task order — each with its own list of tasks. Those task definitions are applied to the generated trip once its stops exist.
A generated trip is created as a draft, not as a scheduled trip. Its notes record which template produced it. That gives you a review step: generation fills the week, and a dispatcher schedules what should actually go out.
Building one
New Template opens a three-step form. Only a name, a type and a recurrence are required; everything else can be filled in later.
- 1
Template details
Trips → Templates → New TemplateName the template, choose a trip type and an origin, and set the priority. Then set the recurrence and the generation settings — how many days ahead to generate, and any blackout dates.
Category, estimated duration, description, notes and tags are folded away under an optional section.
- 2
Route and assignment
Trips → Templates → New Template → Route & AssignmentBuild the stop list exactly as you would in the trip wizard, including the tasks each stop should carry. Attach a default driver and vehicle here if the same person always runs it.
- 3
Review and generate
Trips → Templates → New Template → Review & GenerateCheck the plan, then save. New templates are created active at version 1, which means the next automatic run will pick them up.
Recurrence and scheduled time
The recurrence editor offers four presets and a custom builder. Custom lets you repeat daily, weekly or monthly, every N periods, on chosen days of the week, and either forever, after a number of occurrences, or until a date. Underneath it is a standard iCalendar repeat rule, so anything you can express there can also be set through the API.
| Preset | Runs on |
|---|---|
| Daily | Every day, including weekends |
| Weekdays | Monday to Friday |
| MWF | Monday, Wednesday and Friday |
| Weekly | Once a week, on the start date’s weekday |
Generating trips
Generation happens two ways. Automatically, as a scheduled job that walks every active template and fills its generate-ahead window — 7 days unless you change it, and anything from 1 to 365. And on demand, from the template itself, where you pick a date range.
An on-demand run previews first. The preview expands exactly the dates a confirmed run would create, including the ones it would skip and why, so what you approve is what you get. The only thing a preview cannot predict is a live scheduling conflict, since a conflicting trip can appear between the preview and the confirmation.
Both runs report the same two lists: the trips created, each with any conflict warnings, and the dates skipped, each with a reason.
| Reason | What happened | What to do |
|---|---|---|
| Blackout date | The date is on the template’s blackout list | Nothing — this is deliberate |
| Already generated | This template already produced a trip for that date | Nothing — reruns never duplicate |
| A conflict | The driver or vehicle could not take the trip | Free the assignment, then rerun the range |
| A validation error | The template no longer produces a valid trip | Fix the template, then rerun the range |
Status, versions and deleting
A template is active, paused or archived. Only active templates generate, so pausing is how you stop a recurrence for a holiday period without losing the plan. The templates list filters on exactly these three, plus All, and searches names and descriptions.
Every save bumps the template’s version and stores a snapshot, so the history of a recurrence is recoverable — useful when a route quietly changed three months ago and nobody can remember when.
Deleting a template does not touch the trips it already generated. Those are real trips with their own numbers, statuses and history, and they carry on exactly as they were.
When generation does not do what you expect
A run reports zero trips created and zero skipped
The recurrence produced no occurrences in the window.
Check the start date and the repeat rule. A weekly rule that starts next month expands to nothing this week, and a rule that has already hit its end date or occurrence count expands to nothing at all.
Generating is refused because the template is not active
The template is paused or archived.
Set it back to active from the template page. This is deliberate: the same check guards the on-demand button and the scheduled job, so a paused template cannot be worked around by hand.
The trips arrive an hour off
Scheduled time is applied in UTC, not in a local zone.
Set the time to the UTC equivalent of the local time you want. It does not follow daylight saving, so a template that is right in winter needs adjusting in summer.
A generated trip has no tasks on its stops
Task population runs after the trip is created and can fail on its own.
The run reports this as a warning against the trip, naming the stop. The trip itself is valid — add the missing tasks by hand on the trip’s stop, and check the template stop still carries the task definitions you expect.
The same date will not generate again after you deleted its trip
The template’s watermark has already passed that date.
Run generation on demand for a range that includes the date. The per-date check looks for an existing trip rather than trusting the watermark alone, so a deleted one is recreated.