---
title: Set Up Service Tasks and PM Programs
description: "Set up preventive maintenance: build reusable service tasks with parts, then create PM programs with a cadence, standard time, labor rate and fees."
---

[Skip to content](https://support.metafleet.ai/building-service-tasks-pm-programs#main-content)

English

Show submenu for translations

![AI-powered fleet repair software](https://support.metafleet.ai/hs-fs/hubfs/Transparent%20logo%20for%20dark%20background.png?width=350&height=54&name=Transparent%20logo%20for%20dark%20background.png)

Open main navigation

Close main navigation

- English
  
  Show submenu for translations
- [Contact us](mailto:support@metafleet.ai)

[Contact us](mailto:support@metafleet.ai)

 How can we help you?

- There are no suggestions because the search field is empty.

1. [MetaFleet Answer Hub](https://support.metafleet.ai/?hsLang=en)
2. [Dispatch & Scheduling](https://support.metafleet.ai/dispatch-scheduling?hsLang=en)
3. [Preventative Maintenance](https://support.metafleet.ai/dispatch-scheduling?hsLang=en#preventative-maintenance)

# Set Up Service Tasks and PM Programs

## Build a library of reusable service tasks, then bundle them into PM programs with a cadence and billing defaults.

**For:** Admins and service managers · **Permission:** Manage service programs · **Time:** about 5 minutes

### Quick summary

1. Go to **Settings › PM & Inspections**.
2. On **Service Tasks**, click **+ New task** and build the jobs your shop performs, with their duration and parts.
3. On **Service Programs**, click **+ New program** and give it a name.
4. Pick the program's tasks, then set how often it runs and its billing defaults.
5. Click **Create program**, then enroll vehicles in it.

### Before you start

- **Two building blocks:** a **service task** is one job, such as an oil change or a brake inspection. A **service program** bundles tasks and says when they run. Every task in a program runs on every visit.
- **Tasks come first.** A program needs at least one task, so build your task library before your programs.
- **Parts:** the parts a task uses come from your parts catalog. Add any missing parts there first.
- **Billing defaults (optional):** if you want programs to prefill a labor rate or fees on the invoice, set those up first under **Pricing & Rates** and **Fees & Surcharges** in Settings.

### Open PM & Inspections

Click **Settings** (the gear icon at the top right). Under **Operations**, click **PM & Inspections**. The page opens on **Service Tasks**, with **Service Programs** next to it. The number beside each tab is how many you have.

If you haven't built a task and a program yet, a **Set up preventative maintenance** card at the top of Service Tasks walks you through it: **Build your task library**, then **Create a service program** (it unlocks after your first task), then **Assign service bays**, which is optional. The card goes away once you have both a task and a program.

![PM & Inspection Settings on the Service Tasks tab, listing tasks with duration, parts count, and Edit and Archive buttons](https://support.metafleet.ai/hs-fs/hubfs/knowledge-base/oct-2026/building-service-tasks-pm-programs-01-service-tasks.png?width=943&height=700&name=building-service-tasks-pm-programs-01-service-tasks.png)

*Service Tasks: your reusable library, with each task's duration and number of parts.*

### Build your service tasks

Define each task once, and any program can use it. Click **+ New task** and fill in the **New service task** window:

1. **Name** (required), for example **Air Brake Leak-Down Test**.
2. **Description:** what the technician does. It shows under the task name in the list.
3. **Estimated duration (minutes):** how long the job takes. Programs add these up to suggest a standard time.
4. **Parts:** click **+ Add part**, open the picker and type in **Search parts by name or number**. Set the quantity and, if you like, a unit such as `ea`, `qt` or `kit`. Add one row per part.

Click **Create task**, or **Save & add another** to keep the window open for the next one. To change a task later, click **Edit** on its row.

![New service task window with name, description, 15-minute duration and a part search for air showing matching parts](https://support.metafleet.ai/hs-fs/hubfs/knowledge-base/oct-2026/building-service-tasks-pm-programs-02-task-modal.png?width=724&height=739&name=building-service-tasks-pm-programs-02-task-modal.png)

> **Parts load from the task.** When PM work starts on a vehicle, each task's parts are loaded onto the technician's checklist. If you change a task's parts, the change applies to PM work started after you save.

### Create a program

Open the **Service Programs** tab. Each program shows its cadence (for example **Every 25,000 mi or 3 mo**), when the first service falls, its number of tasks and their total time. Use **Search programs…** to find one, and **Active** and **Inactive** to switch lists.

![Service Programs list with search, + New program, Active and Inactive tabs, and two programs showing cadence and task count](https://support.metafleet.ai/hs-fs/hubfs/knowledge-base/oct-2026/building-service-tasks-pm-programs-03-program-list.png?width=943&height=421&name=building-service-tasks-pm-programs-03-program-list.png)

Click **+ New program**. The **New service program** window has three steps: **Basics**, **Tasks** and **Cadence & billing**.

On **Basics**, enter a **Program name** and a short **Description**. The description is shown under the program name in the list. Click **Continue**.

![New service program window on step 1, Basics, with the program name and description filled in](https://support.metafleet.ai/hs-fs/hubfs/knowledge-base/oct-2026/building-service-tasks-pm-programs-04-wizard-basics.png?width=1024&height=478&name=building-service-tasks-pm-programs-04-wizard-basics.png)

### Pick the program's tasks

1. **Add tasks:** click a task in the **Task library** on the right to move it into **In this program** on the left. Use **Search tasks** to narrow a long library. Click the **×** on a task to take it out.
2. **Need a new task?** Type its name in **New task name…** under the library and click **Create & add**. The task is created with just a name and added to the program. Add its duration and parts later on Service Tasks.
3. **Standard time to complete:** this is the time you bill per vehicle. It starts as the sum of the task estimates. Type a different number to bill a flat time, for example `2` hours. **Reset** puts it back to the task total.

![Tasks step with four tasks in the program, the task library on the right, and standard time to complete at 2.08 hours](https://support.metafleet.ai/hs-fs/hubfs/knowledge-base/oct-2026/building-service-tasks-pm-programs-05-wizard-tasks.png?width=1024&height=692&name=building-service-tasks-pm-programs-05-wizard-tasks.png)

> **Leave standard time blank and the program bills no labor.** The program card then reads **No labor billed**, and PM invoices from this program get no labor hours.

### Set the cadence

On **Cadence & billing**, tell MetaFleet when the program comes due:

- **Run every:** a number of miles, a number of months, or both. With both, whichever comes first triggers the service. You need at least one.
- **First service at:** leave it blank to start at the first interval. Fill it in when the first service should come earlier, for example a 5,000-mile first service on a 10,000-mile program. It uses miles when the program has a mileage interval, otherwise months.
- **Show up for scheduling:** pick **2 weeks ahead** (the default), **1 week ahead** or **4 days ahead**. A vehicle due on this program appears under **Due Soon** this far ahead, so someone can call the customer and book it.

![Cadence section set to run every 3 months, with Show up for scheduling set to 2 weeks ahead](https://support.metafleet.ai/hs-fs/hubfs/knowledge-base/oct-2026/building-service-tasks-pm-programs-06-wizard-cadence.png?width=1024&height=390&name=building-service-tasks-pm-programs-06-wizard-cadence.png)

> **Show up for scheduling is for your team.** It controls when a vehicle shows as Due Soon. It doesn't send anything to the customer.

### Add billing defaults (optional)

Billing defaults prefill each vehicle's lines on the PM invoice. Anything you skip is set by the dispatcher on the invoice.

- **+ Add labor rate:** choose where the program's labor rate comes from. 
    - **Time-based:** the invoice bills your day, night and weekend rates for when the work happens. It's only offered if you've set up time-based rates.
    - **Saved rate:** pick the labor rate the program bills at from your saved rates.
    - **Custom:** type an hourly rate for this program only. It isn't added to your saved rates.
   The card multiplies the rate by the standard time to show the labor amount per vehicle.
- **+ Add fees:** type in **Search fees to add** and pick the fees to charge on every vehicle, such as a shop supplies fee. **+ New fee** opens your fee list in a new tab.

To drop a default, click the **×** on its card. Removing the Fees card removes its fees too.

![Billing defaults with a Saved rate of $175.00 per hour times 2 hours, a Shop Supplies Fee, and the Create program button](https://support.metafleet.ai/hs-fs/hubfs/knowledge-base/oct-2026/building-service-tasks-pm-programs-07-wizard-billing.png?width=1024&height=467&name=building-service-tasks-pm-programs-07-wizard-billing.png)

The line next to the button sums up the program, for example **4 tasks · 2 h standard · Saved rate**. Click **Create program**.

### Check the program

Your new program appears in the list. Click it to expand it. You'll see the **Tasks performed each visit**, the program's **Billing defaults** (**Standard time**, **Labor rate**, **Fees** and **Shows up for scheduling**) and how many vehicles are **Enrolled**.

Click **Edit program** to reopen the three steps, then **Save program**. When you edit, standard time keeps its saved value even if you add tasks. Click **Reset** on the Tasks step to match the new task total.

![Expanded program card with four tasks, billing defaults, 0 vehicles enrolled, and Delete and Edit program buttons](https://support.metafleet.ai/hs-fs/hubfs/knowledge-base/oct-2026/building-service-tasks-pm-programs-08-program-card.png?width=943&height=493&name=building-service-tasks-pm-programs-08-program-card.png)

Next, enroll vehicles in the program so MetaFleet can track when each one is due. See [Enrolling Vehicles in a PM Program](https://support.metafleet.ai/enrolling-vehicles-in-a-pm-program?hsLang=en).

### Retire a task or program

What you can do depends on whether the task or program has been used:

- **Tasks:** a task no program uses and with no service history has a **Delete** button. Once a program uses it, or it has service history, you get **Archive** instead. Archived tasks move to the **Archived** list and drop out of the task library. Click **Restore** to bring one back.
- **Programs:** a program with no enrolled vehicles and no service history has a **Delete** button. Otherwise you get **Deactivate**, which moves the program to the **Inactive** list. Click **Reactivate** to bring it back.

> **Deleting can't be undone.** When in doubt, archive the task or deactivate the program instead. Both keep the record and its history.

### Troubleshooting

| Symptom | Likely cause | Fix |
| --- | --- | --- |
| "Give the program a name to continue." | The **Program name** is empty | Enter a name on the Basics step. |
| "Add at least one task to continue." | No tasks are in the program yet | Click a task in the library, or create one with **Create & add**. |
| "Set how often this program runs — miles, months, or both." | No interval is set | Enter miles, months or both under **Run every**. |
| "Type the custom rate, pick a different source, or remove the labor card." | **Custom** is selected with no amount | Type the hourly rate, pick another source, or click the **×** on the Labor card. |
| "Pick a saved rate, choose a different source, or remove the labor card." | **Saved rate** is selected but no rate is picked | Pick a rate from the list, choose another source, or remove the card. |
| A task isn't in the task library | It's archived, or it's already in the program | Check **In this program**. If it's not there, restore it from the **Archived** list on Service Tasks. |
| A task or program has no **Delete** button | It's in use or has service history | Archive the task, or deactivate the program. |
| The program card says **No labor billed** | Standard time is blank | Click **Edit program** and enter hours on the Tasks step, or click **Reset**. |
| **Time-based** isn't offered on the Labor card | Time-based rates aren't set up | Use **Saved rate** or **Custom**, or set up time-based rates first. |
| The wrong parts load on a PM | The task's parts list is off | Edit the service task and fix its parts. PM work started after you save uses the new list. |
| "You don't have permission to manage service programs." | Your role can't manage service programs | Ask your account admin for a role that can. |

### FAQs

**What's the difference between a task and a program?**  
A task is a single job, with its own duration and parts. A program bundles tasks, sets when they run, and can carry billing defaults.

**Can one task be in several programs?**  
Yes. That's the point of the library. Update the task once and every program that uses it picks up the change.

**Miles or months: which wins?**  
Whichever comes first. Set either one or both per program.

**Where does standard time come from?**  
It starts as the total of the task estimates. You can type your own figure, which then stays put when you add tasks. Click **Reset** to go back to the task total.

**Does Show up for scheduling send customer reminders?**  
No. It only sets how early a due vehicle shows as Due Soon for your team.

**Are billing defaults final?**  
No. They prefill the PM invoice for each vehicle, and the dispatcher fills in anything you left out. See [PM Invoicing](https://support.metafleet.ai/pm-invoicing?hsLang=en).

**How do I put a program on a visit?**  
Enroll vehicles in it (see [Enrolling Vehicles in a PM Program](https://support.metafleet.ai/enrolling-vehicles-in-a-pm-program?hsLang=en)), then pick the program when you book. See [Book a PM, Inspection or Repair Appointment](https://support.metafleet.ai/scheduling-a-pm-appointment?hsLang=en).

### Related articles

- [Enrolling Vehicles in a PM Program](https://support.metafleet.ai/enrolling-vehicles-in-a-pm-program?hsLang=en)
- [Book a PM, Inspection or Repair Appointment](https://support.metafleet.ai/scheduling-a-pm-appointment?hsLang=en)
- [PM Invoicing](https://support.metafleet.ai/pm-invoicing?hsLang=en)
- [Complete PM Work](https://support.metafleet.ai/complete-pm-work?hsLang=en)
- [Set Up Bays for PM Scheduling](https://support.metafleet.ai/set-up-bays-for-pm-scheduling?hsLang=en)

- [Start Here](https://support.metafleet.ai/start-here?hsLang=en)
- [Companies & Contacts](https://support.metafleet.ai/companies-contacts?hsLang=en#main-content)

    - [Create/Edit Companies](https://support.metafleet.ai/companies-contacts?hsLang=en#create-edit-companies)
    - [Contacts](https://support.metafleet.ai/companies-contacts?hsLang=en#contacts)
    - [Vehicles](https://support.metafleet.ai/companies-contacts?hsLang=en#vehicles)
- [Work Intake (Requests & Service Orders)](https://support.metafleet.ai/work-intake-requests-service-orders?hsLang=en#main-content)

    - [Creating Service Orders](https://support.metafleet.ai/work-intake-requests-service-orders?hsLang=en#creating-service-orders)
    - [Customer & Partner Requests](https://support.metafleet.ai/work-intake-requests-service-orders?hsLang=en#customer-partner-requests)
    - [Reference](https://support.metafleet.ai/work-intake-requests-service-orders?hsLang=en#reference)
    - [Customer Portal](https://support.metafleet.ai/work-intake-requests-service-orders?hsLang=en#customer-portal)
- [Estimates & Approvals](https://support.metafleet.ai/estimates-approvals?hsLang=en#main-content)

    - [Approval Gates](https://support.metafleet.ai/estimates-approvals?hsLang=en#approval-gates)
    - [Estimates](https://support.metafleet.ai/estimates-approvals?hsLang=en#estimates)
    - [Invoices](https://support.metafleet.ai/estimates-approvals?hsLang=en#invoices)
    - [Billing](https://support.metafleet.ai/estimates-approvals?hsLang=en#billing)
- [Parts, Inventory & Vendors](https://support.metafleet.ai/parts-inventory-vendors?hsLang=en#main-content)

    - [Add Parts & Kits](https://support.metafleet.ai/parts-inventory-vendors?hsLang=en#add-parts-kits)
    - [Stock & Counts](https://support.metafleet.ai/parts-inventory-vendors?hsLang=en#stock-counts)
    - [Locations & Bins](https://support.metafleet.ai/parts-inventory-vendors?hsLang=en#locations-bins)
    - [Purchase Orders](https://support.metafleet.ai/parts-inventory-vendors?hsLang=en#purchase-orders)
    - [Parts Catalog](https://support.metafleet.ai/parts-inventory-vendors?hsLang=en#parts-catalog)
    - [Vendors & Manufacturers](https://support.metafleet.ai/parts-inventory-vendors?hsLang=en#vendors-manufacturers)
    - [Pricing](https://support.metafleet.ai/parts-inventory-vendors?hsLang=en#pricing)
    - [Service Vehicles](https://support.metafleet.ai/parts-inventory-vendors?hsLang=en#service-vehicles)
    - [Sourcing & Hand-Off](https://support.metafleet.ai/parts-inventory-vendors?hsLang=en#sourcing-hand-off)
    - [Part Numbers](https://support.metafleet.ai/parts-inventory-vendors?hsLang=en#part-numbers)
    - [Notifications](https://support.metafleet.ai/parts-inventory-vendors?hsLang=en#notifications)
    - [Reports](https://support.metafleet.ai/parts-inventory-vendors?hsLang=en#reports)
- [Invoicing & Payments](https://support.metafleet.ai/invoicing-payments?hsLang=en)
- [Dispatch & Scheduling](https://support.metafleet.ai/dispatch-scheduling?hsLang=en#main-content)

    - [Preventative Maintenance](https://support.metafleet.ai/dispatch-scheduling?hsLang=en#preventative-maintenance)
    - [Technician Assignment](https://support.metafleet.ai/dispatch-scheduling?hsLang=en#technician-assignment)
    - [Scheduling & Calendar](https://support.metafleet.ai/dispatch-scheduling?hsLang=en#scheduling-calendar)
    - [Technician Schedule](https://support.metafleet.ai/dispatch-scheduling?hsLang=en#technician-schedule)
- [Technicians & Mobile App](https://support.metafleet.ai/technicians-mobile-app?hsLang=en#main-content)

    - [Time Tracking](https://support.metafleet.ai/technicians-mobile-app?hsLang=en#time-tracking)
    - [Tech Workflow](https://support.metafleet.ai/technicians-mobile-app?hsLang=en#tech-workflow)
    - [Evidence & Photos](https://support.metafleet.ai/technicians-mobile-app?hsLang=en#evidence-photos)
    - [AI Assistant](https://support.metafleet.ai/technicians-mobile-app?hsLang=en#ai-assistant)
- [Alerts, Alarms & Notifications](https://support.metafleet.ai/alerts-alarms-notifications?hsLang=en#main-content)

    - [Email/SMS/App Settings](https://support.metafleet.ai/alerts-alarms-notifications?hsLang=en#email-sms-app-settings)
- [Reporting & Dashboards](https://support.metafleet.ai/reporting-dashboards?hsLang=en)
- [Admin & Settings](https://support.metafleet.ai/admin-settings?hsLang=en#main-content)

    - [Rates & Fees](https://support.metafleet.ai/admin-settings?hsLang=en#rates-fees)
    - [Branding](https://support.metafleet.ai/admin-settings?hsLang=en#branding)
    - [Roles, Permissions & Users](https://support.metafleet.ai/admin-settings?hsLang=en#roles-permissions-users)
    - [Service Areas](https://support.metafleet.ai/admin-settings?hsLang=en#service-areas)
    - [Workflows](https://support.metafleet.ai/admin-settings?hsLang=en#workflows)
    - [Taxes](https://support.metafleet.ai/admin-settings?hsLang=en#taxes)
    - [Integrations](https://support.metafleet.ai/admin-settings?hsLang=en#integrations)
- [Integrations](https://support.metafleet.ai/integrations?hsLang=en#main-content)

    - [Phone Setup](https://support.metafleet.ai/integrations?hsLang=en#phone-setup)
    - [AI Assistant Access](https://support.metafleet.ai/integrations?hsLang=en#ai-assistant-access)
    - [QuickBooks](https://support.metafleet.ai/integrations?hsLang=en#quickbooks)
- [Getting Around](https://support.metafleet.ai/getting-around?hsLang=en#main-content)

    - [Search & Command Bar](https://support.metafleet.ai/getting-around?hsLang=en#search-command-bar)

[![AI-powered fleet repair software](https://support.metafleet.ai/hs-fs/hubfs/Transparent%20logo%20for%20dark%20background.png?width=350&height=54&name=Transparent%20logo%20for%20dark%20background.png "AI-powered fleet repair software")](http://www.metafleet.ai)

<https://www.facebook.com/> <https://www.instagram.com/> [mailto:support@metafleet.ai](mailto:support@metafleet.ai)

Copyright © 2025, MetaFleet, Inc