Preventive Maintenance Schedules
Calendar-based recurring service, from one schedule covering a whole fleet down to per-asset parts.
On this page
The basics
Go to CMMS > PM Schedules and click + New PM Schedule. A schedule needs four things: a title, one or more assets/vehicles, a frequency, and a next due date. Optionally add a default assignee and a description of the work.
- Frequency — Daily, Weekly, Monthly, Quarterly, or Annual.
- Assets / Vehicles — one schedule can cover many. This is a real multi-select: use the combobox to add assets one at a time, and remove any of them later from the same field or from the schedule's Assets tab.
- Default Assignee — optional. Whoever you pick here is automatically assigned to every work order this schedule generates, on every asset.
- Instructions / Description — free text describing the maintenance tasks. It applies to all assets on the schedule; use per-asset parts (below) for anything that differs by asset.
Worked example: fleet-wide seasonal PM
Say you want one routine — "Spring Mower Tune-Up" — to hit all 8 mowers on the crew before the season starts, but the oil filter part number differs by mower model.
- Click + New PM Schedule, title it Spring Mower Tune-Up, set Frequency to Annual, and pick a Next Due Date (e.g. the target start-of-season date).
- In the Assets field, add all 8 mowers one at a time — the picker resets after each selection so you can keep adding without re-opening it. Each shows as a removable badge above the field.
- Add general instructions in the Description field (e.g. "Oil + filter change, blade sharpen/balance, air filter, spark plug, belt inspection, deck wash") — this text is shared by every mower on the schedule.
- Save the schedule, then open it and go to its Assets tab. Each mower is its own row; click a row to expand it and add that mower's specific parts with quantity and unit cost.
| Asset row | Oil filter part # | Unit cost |
|---|---|---|
| Mower #1 – Toro Z Master | Toro 100-3743 | $14.50 |
| Mower #2 – Toro Z Master | Toro 100-3743 | $14.50 |
| Mower #3 – Exmark Lazer Z | Exmark 116-2261 | $11.25 |
| Mower #4 – Exmark Lazer Z | Exmark 116-2261 | $11.25 |
| Mower #5 – Scag Turf Tiger | Scag 48069 | $16.00 |
| Mower #6 – Scag Turf Tiger | Scag 48069 | $16.00 |
| Mower #7 – Ferris IS 700 | Ferris 5021378 | $13.75 |
| Mower #8 – Ferris IS 700 | Ferris 5021378 | $13.75 |
One schedule, one due date, one generation click — but each mower's work order still carries the correct filter part number and cost for its own model.
How "due" is calculated
A PM schedule doesn't derive its due date from a separate start date — the Next Due Date field you set (or last generated) is the date the system tracks. There's no background job silently recalculating it; the date only moves in one place, described below.
| Frequency | How the next due date advances |
|---|---|
| Daily | Advances the next due date by 1 day each time WOs are generated. |
| Weekly | Advances by 7 days. |
| Monthly | Advances by 1 calendar month, clamped to the last valid day of the target month. |
| Quarterly | Advances by 3 calendar months, same clamping rule. |
| Annually | Advances by 12 calendar months, same clamping rule. |
Generating work orders
Work orders aren't created automatically just because a date has passed — someone (or the PM Due Reminder automation, see below) generates them from the schedule. What gets created depends on how many assets are on the schedule:
- Single asset — one flat work order, with that asset attached directly.
- Multiple assets — one parent work order plus a sub-work order per asset, each carrying its own asset and its own copied-over parts list.
The moment work orders are generated, the schedule's next due date advances by one full interval from that generation date — not from the previous due date. Marking the resulting work order done doesn't separately move the date; generation is what advances it.
Parts, two levels
Parts show up on a PM schedule at two different levels — they serve different purposes:
| Level | Where | Use it for |
|---|---|---|
| Schedule-level | Parts tab on the schedule itself | Parts expected for the routine in general, shared across every asset on the schedule. |
| Per-asset | Assets tab, expand a specific asset row | A parts template scoped to just that one asset — quantity and unit cost included. This is what gets copied onto that asset's work order (or sub-work order) when the schedule generates. |
Use per-asset parts whenever a mixed fleet needs different part numbers for the same routine — different oil filters, different belts — as in the worked example above.
Calendar-based vs. meter-based
A PM Schedule is calendar-based: it fires on a fixed cadence (weekly, monthly, etc.) regardless of how much the asset is actually used. Equipt's Automations (CMMS > Automations) can also trigger recurring maintenance from a Meter Threshold — engine hours, odometer miles, and similar values that accrue with usage — which is usage-based instead of date-based.
They're independent mechanisms, and nothing stops you from using both on the same asset:
- A PM Schedule catches maintenance that should happen on a schedule no matter what — e.g. a seasonal tune-up before spring, regardless of hours logged.
- A meter-threshold automation catches maintenance that should happen based on wear — e.g. an oil change every 200 engine hours, whether that takes two weeks or two months depending on how busy the crew is.
- Running both on the same asset (e.g. a mower) means whichever condition is met first — the calendar date or the meter value — is what triggers that particular maintenance event. They don't coordinate with or cancel each other.
Notifications
- PM schedules due within 7 days surface in the Notifications bell as "PM Due" alerts.
- The PM Due Reminder automation template (CMMS > Automations) can also generate a work order automatically ahead of the due date, instead of waiting for someone to click Generate manually.
- Marking the resulting work order complete is the normal way a PM schedule's cycle closes out day to day — but remember it's generating the work order, not completing it, that actually advances the schedule's next due date.
Gotchas
- No assets, no generation. A schedule with zero linked assets can be saved as a draft-like shell, but generating work orders from it is blocked until at least one asset is added.
- Frequency values differ slightly by context. PM Schedules use
annualfor a yearly cadence; the similarly-named recurring-work-order frequency elsewhere in CMMS usesyearlyplus abiweeklyoption that PM Schedules don't have. They're not the same field — don't assume one implies the other. - Removing an asset from a schedule only affects future generations — it doesn't retroactively touch work orders already created from that schedule.
- Parts on generation deduct inventory immediately. Any per-asset part with a linked inventory part is deducted from
quantity_on_handthe moment work orders are generated, not when the work order is later marked done.