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 is the schedule's calendar. Every later cycle lands on that same cadence: a weekly schedule first due on a Wednesday is due every Wednesday. There's no background job silently recalculating it; the date only moves when work orders are generated, described below.

FrequencyHow the next due date advances
DailyEvery day.
WeeklyEvery 7 days — the same weekday every week.
MonthlyEvery calendar month, on the same day of the month (clamped to the month's last day when it's shorter).
QuarterlyEvery 3 calendar months, same rule.
AnnuallyEvery 12 calendar months, same 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 (master) work order plus a sub-work order per asset, each carrying its own asset and that asset's own parts. Parts from the schedule's Parts tab are shared, so they go on the master work order once (one stock deduction), not on every sub-work order.

Every generated work order is due on the schedule's Next Due Date — the date this PM was actually due, which is what on-time vs. late is judged against. The moment work orders are generated, Next Due moves to the next date on the schedule's cadence. 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.

Generating late (or early)

Because the calendar keeps its cadence, generating on the "wrong" day doesn't shift the schedule:

  • A week late. A weekly schedule due Wednesday, Sep 23 is generated on Sunday, Sep 27. The batch is due Sep 23 (so it counts as late, not missed, once it's done), and Next Due becomes Wednesday, Sep 30 — not the following Sunday. Finish the late batch, then generate Wednesday's as usual.
  • Several weeks late. Generating creates one batch for the oldest missed week and moves Next Due to the next Wednesday from today. The weeks in between count as missed — generating late doesn't erase them.
  • On the day the next one is due. Generating last week's batch on this Wednesday leaves this Wednesday due — it isn't skipped.
  • Early. Generating Tuesday for a Wednesday PM makes the batch due Wednesday and moves Next Due one week past that.

Pausing a schedule (off-season)

Mowers don't need weekly service in January. Open the schedule and click Pause (next to Generate WOs). Choose when the pause starts and one of:

  • A resume date — e.g. a truck parked for a month. The schedule runs again on that date.
  • Until I resume it — open-ended. A Resume button replaces Pause while it's paused.
  • Repeat every year — set Dec 1 → Apr 1 once and the schedule pauses every winter from then on. It needs a resume date and can't be longer than a year.

While a schedule is paused:

  • Cycles that fall inside the pause aren't due — nothing is overdue and nothing counts against PM compliance.
  • Generate WOs is disabled, and the PM Due alert and the PM Due Reminder automation skip it.
  • The schedule shows Paused in the list and Paused until Apr 1 (or just Paused) in its header.
  • When it resumes, the first PM due is the first date on its cadence after the pause — not a stale date from before it.

Every pause window is listed on the schedule's Details tab. Remove one with its × button — that removes the whole window, so removing a yearly pause removes it for every year.

A yearly pause can't be ended early for just one year. If spring comes early, remove the yearly pause and add it back (starting next winter), or add a one-off pause for this year only. Pauses can also be backdated — a pause that starts in the past clears that period's missed PMs, so use it for time the equipment really was parked.

PM compliance

Each asset's Performance cards and Equipt > Reports > PM Compliance score PMs against the schedule's calendar: every cycle whose due date has passed counts as done or missed — including cycles nobody generated. A multi-asset schedule counts once per asset. Paused cycles don't count at all.

For the exact rules — every outcome, and how meter-triggered PMs count — see Asset Performance, Warranties & Reliability Reports.

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. On generation they land once on the master work order (or the lone work order of a single-asset schedule), with a single stock deduction.
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 own work order (or sub-work order) when the schedule generates, once per asset.

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 on a cumulative meter — which is usage-based instead of date-based. (Level meters, like a fuel tank, only support “drops below” alerts, which aren't PM.)

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 — except schedules that are paused today.
  • 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.
  • Inactive vs. Paused. Older schedules may show Inactive — a legacy flag with no dates behind it. Inactive schedules don't pile up missed PMs going forward, but use Pause instead: it records when the schedule was off, so the history stays right.
  • 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.