Every maintenance service has two clocks: one counting usage (run-hours, miles) and one counting time (days, months). Schedules go wrong when they track only one. A 250-hour forklift service at 6 hr/day comes due in 41.7 days โ hours win. A backup generator at 1.5 hr/day takes 133 days to reach 200 hours, but its oil still ages out at a year โ calendar wins. Build the schedule around whichever comes due first, and the surprises stop. Below: the interval math, the overdue flags that matter, and the 12-month plan that turns a parts list into a staffing plan.
For each asset, pull the OEM service table: the service, its usage limit, its time limit. Typical planning ranges (your manual governs):
| Asset / service | Usage interval | Calendar interval | Usually binds |
|---|---|---|---|
| Forklift โ oil & filter | 250 run-hr | ~6 months | Usage |
| Compressor โ oil change | 2,000-4,000 run-hr | 12 months | Either (8 hr/day โ both) |
| Generator โ oil & filter | 200-250 run-hr | 12 months | Calendar |
| Fleet vehicle โ synthetic oil | 5,000-7,500 mi | 12 months | Miles |
| Rooftop HVAC โ filters | โ | 30-90 days | Calendar |
| Fire extinguishers (NFPA 10) | โ | Monthly visual ยท annual service ยท 6-yr ยท 12-yr | Calendar, mandated |
| Overhead crane (OSHA 1910.179) | โ | Annual periodic + frequent inspections | Calendar, mandated |
Note the two mandated rows โ fire protection and crane inspections run on required cycles that don't care about your workload. They anchor the calendar; everything else schedules around them.
Three lines of arithmetic:
Worked example, forklift FL-3: 250-hour service, 6 hr/day, 180-day cap, last done August 1, 2026. Usage says 41.7 days โ September 12. Calendar says 180 days โ January 28, 2027. Usage wins: September 12, and at 365 รท 41.7 this asset generates 8.8 services a year by itself.
The same math catches the classic miss: generator GEN-2, 200-hour oil service, 1.5 hr/day average, last serviced March 10. Usage says 133 days โ July 21. Calendar says March 2027. Usage wins again โ and if today is late August, that row reads 40 days overdue. A calendar-only spreadsheet showed a generator that "barely runs" as fine for another six months. The two-clock sheet flags it red.
Enter interval, usage per day, and last completed โ the template computes which clock binds, flags overdue and due-soon work, and prints the 12-month plan.
Open the Maintenance Schedule Template →List every asset's next-due date and you'll find the failure of naive scheduling instantly: stacking. Preventive services seeded from the same project date pile into the same month โ five services in March, none in April โ and the crew either skips March or breaks April. Two fixes: stagger the seed dates (a quarterly task started in January runs Jan/Apr/Jul/Oct; started in February it runs Feb/May/Aug/Nov โ both are compliant, one fits your labor), and re-check the 30-day window weekly, where the due-soon flags live.
The 30-day window is the operative unit of a schedule. It's long enough to receive parts and book a tech, short enough that nothing hides. Sum services-per-year across the fleet and you get the annual load โ the five-asset example above totals 19.9 services a year, which converts directly to staffing: at 45 minutes average per PM visit that's about 15 hours a month of scheduled wrench time before a single repair.
A schedule is a living document with exactly one update event: a completed service. Tech finishes, last-done date changes, every downstream date recomputes. This is where paper calendars rot โ the sheet on the wall shows the date the plan was made, not the date the work happened. Keep the source of truth digital (the QR on the printed schedule links straight back to the live calculator), update at completion, re-print monthly.
Each completed service should generate its record โ that's the work order generator's job โ and each PM visit runs off a checklist specific to the asset. Schedule, work order, checklist: plan the job, authorize it, execute it. For the consumer version of the same discipline, our car maintenance schedule guide applies the identical two-clock logic to a single vehicle.
A calendar of every recurring service for every asset, with the interval, the last-completed date, and the computed next-due date per line. The schedule is working when anyone can answer two questions in a glance: what's due this month, and what was last done to this machine.
Days until the usage limit = interval divided by average usage per day (250 hours at 6 hr/day = 41.7 days). Days until the calendar limit = the OEM time cap. Service at whichever date comes first: last completed + the smaller of the two. For calendar-only intervals, months x 30.44 days.
Whichever due date is earlier. Hard-running assets (multi-shift forklifts, delivery vans) almost always bind on hours or miles; low-duty assets (backup generators, fire equipment, standby pumps) bind on the calendar because fluids, seals, and batteries age with time even at zero use.
Twelve months, recomputed at every completion. A year is far enough to see stacking (the month where five services land together) and short enough that the far months stay honest, since each completed service re-flows everything after it.