Atom AI

AI built inside your CMMS to make your FM operations smarter and easier

Explore Atom Assistants
Preventive Maintenance

Preventive Maintenance Schedule

A twelve-month matrix of what falls due when. Put the hours against each task, mark the months, and the sheet totals the workload per month, so you find out in December that August is triple-booked rather than finding out in August.

  • Hours in the month cells, not ticks
  • Monthly totals that add themselves up across twelve columns
  • Utilization against real capacity, with 80% as the ceiling
  • Leveling decisions recorded, so next year does not re-solve them
preventive-maintenance-schedule.xlsx

Preventive Maintenance Schedule

What falls due when, in hours

Rows
One task, one asset, one line
Month cells
Hours, never a tick
Utilization
Above 80% and it fails
Compliance
Tracked monthly, carried forward
#Schedule rowFreqHrsMonths
1AHU-03, HVAC, replace panel filters
2CH-01, HVAC, condenser coil clean and approach check
3GEN-01, Standby power, load bank test and fuel sample
+ one row per task per asset across the whole adopted library, with the hours entered into each month the task falls due and a totals row that adds every column on its own, plus the schedule details and the monthly capacity it is measured against, an annual workload block calculating utilization, contracted hours and anything still unresourced along with the busiest and quietest months, the leveling decisions section recording what was moved and why, monthly compliance tracking with carried-forward work, and the review and sign-off

The document you will get. Download for the full, editable file.

Who this preventive maintenance schedule is for

A schedule is built by one person in a quiet week and then argued with all year by everybody else.

  • The planner who builds it

    The month columns are your work, and the totals row is your answer. Entering hours rather than ticks is what turns this from a list of due dates into a capacity plan you can defend.

  • The technician who works to it

    You feel the peaks. A month at three times the average is not a stretch, it is a month where the awkward jobs get dropped, which is why leveling happens on the sheet rather than on the day.

  • Facilities or operations manager

    Utilization is your number. Above eighty percent there is no capacity left for the reactive work that always arrives, and a schedule with no slack does not survive its first bad month.

  • Compliance lead

    Some tasks cannot move whatever the totals say. Statutory intervals, seasonal dependencies and shutdown windows are the fixed points everything else is leveled around.

Which section matters the most in your sector

The matrix works the same way everywhere. What changes is which months are unavailable to you, and that constraint usually decides the shape of the whole year. If you run one of these, the sector page goes further than the template does.

What a preventive maintenance schedule should contain

A preventive maintenance schedule is a twelve-month matrix placing every adopted maintenance task against the months it falls due. Each row is one task on one asset with its estimated hours, each month cell carries hours rather than a tick, and the monthly totals reveal the workload peaks while there is still time to level them.

A. Fields specific to a maintenance schedule

FieldWhat goes in itWhy it earns its place
The task library it comes fromThe checklist or asset register this schedule is built onNamed at the top because the order matters. This sheet only sets timing, and building it before the tasks are chosen produces a calendar with invisible gaps.
Labor hours available per monthIn-house capacity, before any contracted workThe denominator for everything below. Without it the monthly totals are numbers with nothing to be measured against and the schedule cannot tell you it is undeliverable.
One row per task per assetAsset, system, task, frequency and estimated hoursPer asset rather than per task type. Seven air handling units are seven rows, because that is what the hours and the months actually look like when somebody has to do them.
Hours in the month cellsThe estimated hours, entered in every month the task falls dueThe single most important convention on the sheet. A tick tells you a job is due; an hour figure tells you whether it can be done alongside everything else due that month.
The monthly totals rowTwelve sums, calculatedThis is the output. It is the row that shows August at three times the average while it is still December and something can be done about it.
Annual workloadTotal hours, capacity, utilization, contracted and unresourcedUtilization above roughly eighty percent leaves nothing for reactive work, which always arrives. A schedule above that line is abandoned rather than adjusted.
Busiest and quietest monthNamed, with their hoursThe two numbers that make the case for leveling concrete. A peak month and a quiet month three times apart is a scheduling problem, not a resourcing one.
Tasks that cannot moveStatutory intervals, seasonal dependencies, shutdown windowsThe fixed points. Establishing these before leveling is what stops somebody moving a statutory task to a convenient month and creating a compliance problem out of a capacity one.
Leveling decisionsWhat moved, from which month to which, and whyThe section that pays off a year later. Without it the same clash reappears next year and is solved again from first principles by somebody who does not know it was considered.
Contracted packagesWhich months the contractor actually visitsTheir routing decides several of your months before you level anything. Scheduling around a visit that was never going to happen in March is a common and avoidable waste.
Monthly compliance trackingScheduled, completed, on time, missed, percentage, carried forwardThe measure that says whether the program exists or is merely written down. Carried forward is the column that shows a backlog forming while it is still small.
Review and changesWhat was added or removed during the year, and whenA schedule is amended in practice whether or not anybody records it. Recording it is what makes next year's build an edit rather than a fresh start.

Entering hours rather than ticks is a small convention with a large consequence, and it is the thing most maintenance schedules get wrong. A grid of ticks looks like a schedule and behaves like a wish list: every month appears equally full, so there is no way to see that March has eighteen hours in it and August has sixty-one. The information that decides whether the year is deliverable is precisely the information a tick throws away. With hours in the cells the totals row does the analysis for you, and leveling stops being a judgment about which months feel busy and becomes a matter of moving hours from a column with too many into a column with too few, within the constraints of what is allowed to move. That last qualification is why the tasks that cannot move section sits immediately beside it. Statutory intervals are not available to be leveled, and the fastest way to convert a capacity problem into a compliance problem is to move one of them into a quieter month.

B. What it looks like filled in

The monthly totals from one building's first attempt at a schedule, before leveling. Capacity is 34 hours a month, and the year technically balances.

MonthScheduled hrsCapacityUtilization
Mar18.03453%
Jun31.53493%
Jul29.03485%
Aug61.034179%
Sep22.53466%
Year412.5408101%

The year balances and the schedule is still undeliverable, which is exactly the trap this sheet exists to expose. Total scheduled hours come to 412.5 against 408 of capacity, near enough to look fine on an annual line. August is at 179 percent. Nothing in a tick-based grid would have shown that, and the first anybody would have known is the second week of August when the awkward jobs start slipping. There is a second, quieter problem in these numbers: June at 93 percent and July at 85 are both above the eighty percent ceiling, so even the months that look survivable have no room for the reactive work that will certainly arrive. The fix is leveling, and it starts by establishing which of August's hours are actually allowed to move. Statutory tasks stay; a quarterly filter change does not care whether it happens in August or September, and moving it into March at 53 percent costs nothing at all.

Download the preventive maintenance schedule template

Excel is the one to use here, because the monthly totals, utilization and compliance percentages calculate themselves and the Year Comparison tab makes the case for headcount or for cutting the list. Word and PDF for the version that gets reviewed and signed. Free, and yours to rebrand.

Get the template

How do you build a preventive maintenance schedule?

Build the task list first, then the timing. The sheet does the arithmetic; your work is the constraints and the leveling. Six steps.

  1. Start from an agreed task list, not a blank grid

    Name the task library or asset register this schedule comes from, the period it covers, and the labor hours available per month as in-house capacity before any contracted work. Without that capacity figure nothing below can tell you whether the year is deliverable.

  2. Put one row per task per asset

    Asset, system, task, frequency and estimated hours. Per asset rather than per task type: seven air handling units are seven rows, because that is what the work actually looks like when somebody has to go and do it.

  3. Enter hours in the month cells, never ticks

    For each row, put the estimated hours into every month that task falls due. A quarterly task at 0.75 hours appears four times at 0.75. The totals row at the bottom then adds each month up on its own.

  4. Read the monthly totals before committing to anything

    This is the moment the schedule is worth building. Compare each month against capacity and calculate utilization. Above roughly eighty percent there is no room for reactive work, and a month at three times the average will simply not happen.

  5. Establish what cannot move, then level the rest

    Statutory intervals, seasonal dependencies, shutdown windows and the months your contractor actually visits are fixed. Everything else can be moved out of the peaks into the troughs, and each move gets recorded with the reason.

  6. Track compliance monthly and carry forward honestly

    Scheduled, completed, on time, missed, the percentage and what carried forward. Anything under about eighty-five percent and the reactive workload will be telling you before this table does, and the carried-forward column is where a backlog becomes visible while it is still small.

A spreadsheet cannot tell you a task slipped until somebody opens it and counts. See how Atom AI assistants hold the schedule, what was completed and the backlog forming behind it as one picture.
See Atom AI assistants

A correct schedule versus a leveled one

Most maintenance schedules are correct. Every interval is right, every statutory task is present, and the year still falls apart in August. Correct and deliverable are different properties.

AspectA correct scheduleA leveled schedule
What it gets rightEvery interval, every statutory taskThe same intervals, and the monthly workload
What is in the month cellsUsually a tick, meaning dueHours, meaning what it will actually take
What it can tell youWhether a task is scheduledWhether the month it is scheduled in is possible
How the peaks appearIn the month itself, as slippageIn planning, as a column that will not fit
Room for reactive workUnknown, usually noneExplicit, and kept under the utilization ceiling
How it failsQuietly, dropping awkward jobs firstIt gets adjusted before the year starts

A correct schedule that nobody can deliver is worse than a slightly imperfect one that holds, because the failure is invisible until it has already happened. When August is overloaded, the tasks that drop are not chosen on importance. They are chosen on convenience: the ones needing access, a permit, a contractor booking or a roof are the first to slip, and those are disproportionately the statutory and high-consequence ones. So an overloaded month does not simply postpone work evenly, it systematically deletes the hardest and most important part of it while the compliance figure stays respectable for a while. Leveling is the cheapest intervention available anywhere in maintenance planning: it costs an afternoon in December, it moves hours rather than money, and it is the difference between a program that survives its first busy quarter and one that is abandoned by spring with nobody quite able to say when it stopped.

When the template starts to feel limiting

A spreadsheet is genuinely good at this job for one year in one building. It runs out in four places.

  • Nothing falls due on its own

    The schedule knows a task belongs to August. It does not raise a hand in August, so the month is delivered from somebody's memory of having read the sheet in December.

  • Completion has to be typed back in

    The compliance table is only as current as the last person to update it, which means the figure that tells you whether the program is working is itself a task that slips in a busy month.

  • The schedule and the work orders are different objects

    A row here becomes a job somewhere else, and only a person connects them. A task can be completed with the sheet never updated, or marked complete with no work behind it.

  • Leveling is manual and annual

    The sheet shows you the peaks; moving the hours is your afternoon. And a schedule leveled in December stops being leveled the moment assets are added or a contractor changes their visit month.

What running this in Facilio looks like

The template is the paper version of this schedule. The rows and intervals are the same; the difference is that a scheduled task raises itself as work and reports its own completion back.

  • Ops Performance Intelligence

    Due dates arrive rather than being remembered

    Every task carries its interval against its asset, so the schedule generates work when it falls due and an overdue task surfaces in the month it slips instead of at the next annual review.

  • Work Completion Validator

    Completed means completed

    Compliance is only worth reporting if the closures behind it are real. Work Completion Validator holds each one against its evidence, so the percentage is not quietly inflated by jobs ticked rather than done.

  • Audit Report Intelligence

    Peaks and backlog are visible continuously

    Workload by month, utilization against capacity and the backlog forming behind it are read from live data, so leveling becomes something you do when the shape changes rather than once a year.

  • Contractor Work Tracker

    Contracted visit months stay accurate

    Which packages are contracted, when the contractor actually attends and what was delivered sits against the contract, so the months you leveled around reflect reality rather than last year's routing.

Hallucination-free by design. Atom AI answers from the records in your tenant rather than generating plausible text, so an empty field reads as empty rather than filled in for you.

Frequently asked questions

What is a preventive maintenance schedule?

A preventive maintenance schedule is a twelve-month matrix that places every adopted maintenance task against the months it falls due. Each row is one task on one asset, carrying its frequency and estimated hours, and each month cell holds the hours that task will take in that month rather than a tick.

The monthly totals row then adds each column, which is the point of the whole document: it shows the workload peaks while there is still time to move them, along with utilization against your real capacity and monthly compliance tracking through the year.

How do you create a preventive maintenance schedule?

Start from an agreed task list rather than a blank grid, since this sheet only sets timing. Record the capacity you actually have per month, then enter one row per task per asset with its estimated hours, and put those hours into each month the task falls due.

Then read the monthly totals against capacity, establish which tasks cannot move because they are statutory, seasonal or tied to a shutdown window, and level everything else out of the peak months into the quiet ones. Record what you moved and why, because the same clash returns next year.

Why enter hours instead of ticks?

Because a tick throws away the only information that decides whether the year is deliverable. A grid of ticks makes every month look equally full, so a month with eleven hours in it and a month with sixty-one look identical.

With hours in the cells the totals row does the analysis for you. You can see the peak, compare each month against capacity, calculate utilization, and move hours from an overloaded column into an empty one. None of that is possible from ticks.

What is a realistic utilization figure?

Keep planned work at roughly eighty percent of in-house capacity or below. Above that there is no room for the reactive work that always arrives, and the reactive work will win, because a breakdown is louder than a scheduled filter change.

A schedule planned at or near a hundred percent utilization is not an ambitious schedule, it is one that will be abandoned by spring. If the annual total exceeds capacity, leveling cannot fix it; that is a resourcing decision and it belongs in the plan rather than the schedule.

What is the difference between a maintenance schedule and a maintenance plan?

The plan decides which assets get preventive attention, under which strategy and at what cost, and is written to be approved. The schedule takes the resulting tasks and decides which months they happen in, and is worked all year.

There is a checklist between them. The task library says what should be done and how often, the plan says which assets earn those tasks and what resourcing they justify, and the schedule sets the timing. Building them in the other order produces a calendar nobody can defend.

Is this the same as a scheduled maintenance template?

Yes. Scheduled maintenance and preventive maintenance schedule describe the same instrument here: planned work placed against the months it falls due, as opposed to reactive work that arrives on its own terms.

The one thing to watch is that scheduled maintenance is also the phrase used for planned service downtime notices, which is a different subject entirely. If you are looking for a twelve-month workload matrix for building or plant maintenance, this is the document.

What do I do about months that are overloaded?

Establish what is allowed to move first. Statutory intervals, seasonally dependent tasks and anything tied to a shutdown or access window are fixed, and moving one of those to solve a capacity problem creates a compliance problem instead.

Everything else is fair game. A quarterly task does not care whether it falls in August or September, and moving it into a month running at half capacity costs nothing. Record every move with its reason, or next year somebody re-solves the identical clash from scratch.

Can I edit and rebrand this template?

Yes. It is free to use, edit, rename and put your own logo on, internally or for clients. No attribution required.

The Excel version is the one that earns its keep here, since the monthly totals, utilization, compliance percentages and carried-forward figures all calculate themselves, and the Year Comparison tab puts one row per year side by side. That comparison is usually the strongest argument available for either more headcount or a shorter task list.

In one paragraph

A preventive maintenance schedule places every adopted task against the months it falls due, and its value is entirely in the arithmetic that follows. Build the task list first, because this sheet only sets timing. Record the capacity you actually have, put one row per task per asset, and enter hours in the month cells rather than ticks, since a tick says a job is due while an hour figure says whether it can be done alongside everything else that month. Then read the totals: keep utilization at roughly eighty percent or below, because reactive work always arrives and will win any contest with a scheduled filter change. Establish which tasks cannot move, level the rest out of the peaks, and write down what you moved and why so next year is an edit rather than a fresh start. Track compliance monthly and watch the carried-forward column, because that is where a backlog becomes visible while it is still small enough to clear.

The template is the floor, not the ceiling

Take the schedule; it will show you the peak while you can still do something about it and give you a compliance figure worth reporting. When keeping the sheet current becomes the task that slips first, a connected CMMS takes it over: intervals that raise their own work when due, completion recorded as it happens, the backlog visible while it is small, and workload leveling driven by what the estate looks like now rather than last December.

Preventive Maintenance Schedule Word · Excel · PDF