# PM schedules & templates

> Recurring maintenance that runs itself - schedules that generate work orders on a rhythm, and templates that make programs repeatable.

Source: https://app.assetlab.ca/docs/cmms/preventive-maintenance

Preventive maintenance is the highest-leverage habit in the CMMS: a schedule defined once generates correctly-formed work orders forever, and nobody has to remember anything.

## PM schedules

A **PM schedule** says: do *this work*, on *these things*, at *this rhythm*. Each schedule carries:

- **Association** - any mix of **assets**, **locations** (facility rounds), **systems** (a system-level PM like "Refrigeration Monthly Inspection" covers every asset under that system in one recurring work order), or **[infrastructure features](/docs/infrastructure/features)** (recurring programs on linear assets - flushing, sweeping, CCTV)
- **Frequency** - daily, weekly, monthly, quarterly, semi-annual, annual, five-yearly, or a **custom** interval in weeks
- **Work details** - title, description, category, priority, default assignee
- **Form** - optionally a [form template](/docs/cmms/forms-and-inspections), so every generated work order carries the inspection checklist

When the schedule fires, a normal [work order](/docs/cmms/work-orders) appears in the queue - same views, same completion flow, same cost posting. Completion history stays linked to the schedule, so "have we actually been doing the quarterly?" is answerable in one click.

## Rolling vs. fixed

Every schedule has a **scheduling mode** - the core decision about how the next due date computes:

- **Rolling** (the default) - the next due date counts from the **last completion**. Complete the quarterly two weeks late and the next one lands a full quarter after the day it was actually done. Best for condition-driven work where the interval between services is what matters.
- **Fixed** - due dates align to an **anchor date** pattern regardless of when the last one closed. The January inspection is due in January even if December's ran late. Best for calendar obligations - certificates, seasonal work, anything an auditor checks against a calendar.

Two refinements apply to either mode: **business days only** skips weekends when computing due dates, and **lead time** (in days) generates the work order ahead of the due date so it can be planned rather than discovered.

## Network-scoped PM (infrastructure)

A schedule can target an entire [infrastructure network](/docs/infrastructure/features) instead of picking features one by one. Each cycle it **fans out one work order per matching feature**, and filters narrow the match: feature class, material, and a condition range. "CCTV inspect every concrete sewer main below condition 60" is one schedule, not a list you maintain by hand.

## The schedules page

**Maintenance** offers four views - **table, cards, calendar, and split** (list beside calendar). Multi-select supports **bulk activate and pause**, and any schedule can be **duplicated** - the copy starts inactive so you can adjust it before it generates anything.

## PM templates

A **PM template** is a reusable definition - the manufacturer's recommended service for a compressor type, your standard arena ice-plant rounds - *not* bound to any asset. Seed new schedules from a template and the details come pre-filled; attach a form to the template and every schedule created from it inherits the checklist.

Templates are how multi-site organizations keep programs consistent: define "Monthly Generator Run Test" once, instantiate it at every site.

> [!tip] Building a PM program from a manufacturer's manual? This is one of the best [AI workflows](/docs/ai/example-workflows) - paste the maintenance section into your AI assistant and let it draft the template, the schedule, and the inspection form via MCP.

## The guided creator

**Maintenance → New** offers a guided flow that walks through association, frequency, and work details - the fastest way to stand up your first dozen schedules.

## Scheduling advice

1. **Start with what has a legal or warranty clock** - life-safety inspections, elevator/boiler certificates ([compliance](/docs/cmms/compliance) tracks the paperwork side), warranty-mandated service.
2. **Ride condition along.** One condition question on each PM form and your [assessment history](/docs/asset-management/condition-assessments) builds itself.
3. **Watch PM compliance** on the [dashboard](/docs/asset-management/dashboards) - the percentage of PM work orders completed on time is the single best leading indicator of a maintenance program's health.
4. **Prune annually.** A PM that never finds anything and protects nothing critical is stealing wrench time from one that matters.

## Calendar integration

PM-generated work orders appear in the calendar view, and schedules can export to iCal/Google Calendar so shared shop calendars stay current without copy-typing.
