Equipt (CMMS)

Preventive Maintenance Schedules

Calendar-based recurring service, from one schedule covering a whole fleet down to per-asset parts.

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.

  1. 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).
  2. 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.
  3. 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.
  4. 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 rowOil filter part #Unit cost
Mower #1 – Toro Z MasterToro 100-3743$14.50
Mower #2 – Toro Z MasterToro 100-3743$14.50
Mower #3 – Exmark Lazer ZExmark 116-2261$11.25
Mower #4 – Exmark Lazer ZExmark 116-2261$11.25
Mower #5 – Scag Turf TigerScag 48069$16.00
Mower #6 – Scag Turf TigerScag 48069$16.00
Mower #7 – Ferris IS 700Ferris 5021378$13.75
Mower #8 – Ferris IS 700Ferris 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.

FrequencyHow the next due date advances
DailyAdvances the next due date by 1 day each time WOs are generated.
WeeklyAdvances by 7 days.
MonthlyAdvances by 1 calendar month, clamped to the last valid day of the target month.
QuarterlyAdvances by 3 calendar months, same clamping rule.
AnnuallyAdvances by 12 calendar months, same clamping rule.
Month-end edge case. A schedule due Jan 31 on a Monthly frequency lands on Feb 28 (or 29), not an overflow date like Mar 3 — the system clamps to the last valid day of the target month instead of letting the date roll into the following month. Worth knowing if you set up a schedule anchored to a month-end date.

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.

Duplicate guard. You can't generate a new batch of work orders for a schedule while an earlier batch is still open (not done or skipped). Close out the existing work order(s) first, or the generate action is blocked with an error naming the still-open WO.

Parts, two levels

Parts show up on a PM schedule at two different levels — they serve different purposes:

LevelWhereUse it for
Schedule-levelParts tab on the schedule itselfParts expected for the routine in general, shared across every asset on the schedule.
Per-assetAssets tab, expand a specific asset rowA 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 annual for a yearly cadence; the similarly-named recurring-work-order frequency elsewhere in CMMS uses yearly plus a biweekly option 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_hand the moment work orders are generated, not when the work order is later marked done.
© 2026 Landscapt. All rights reserved.