ExcelReady
CourseMock testsFunction guidesBlog
Start freeStart learning for free
ExcelReady

Be Excel-ready before day one. Hands-on practice in your browser, with instant feedback.

Learn

  • Course
  • Mock tests
  • Function guides
  • Blog

Test prep

  • Excel level test
  • Excel test practice
  • Free screening quiz
  • Certificate

Company

  • About
  • Editorial policy
  • Contact
  • Terms
  • Privacy

© 2026 ExcelReady. All rights reserved.

  1. Blog
  2. Projects
  3. Build a Maintenance Schedule in Excel With Due Dates

Build a Maintenance Schedule in Excel With Due Dates

By ExcelReady Team·Updated November 3, 2026·5 min read

The short answer

To build a maintenance schedule in Excel, list each asset with its last service date and service interval in months. Calculate the next due date with =EDATE(B2,C2), then flag it with =IF(D2<TODAY(),"Overdue",IF(D2-TODAY()<=14,"Due soon","OK")). Add conditional formatting so overdue rows turn red, and update the last service date after each job.

Key takeaways

  • Keep one row per asset with the last service date and the interval in months.
  • =EDATE(B2,C2) adds the interval in months and handles month lengths for you.
  • IF with TODAY() turns due dates into Overdue, Due soon and OK labels that update every day.
  • A conditional formatting rule such as =$D2<TODAY() highlights overdue rows automatically.
  • WORKDAY can move a due date that falls on a weekend to the next working day.
On this page+
  1. What a maintenance schedule needs
  2. How to calculate the next due date with EDATE
  3. How to flag overdue jobs with IF and TODAY
  4. How to highlight overdue rows with conditional formatting
  5. How to move due dates off weekends
  6. How to keep the schedule up to date
  7. Practise it

A maintenance schedule in Excel tells you what needs servicing and when, so nothing is missed. You list each asset with its last service date and how often it needs servicing, and three formulas do the rest: EDATE for the next due date, IF with TODAY for the status, and conditional formatting to make overdue jobs stand out. This guide builds the schedule step by step for anyone who looks after equipment, vehicles or a building.

What a maintenance schedule needs#

A useful schedule has one row per asset and a few columns that drive the formulas. Here is the layout used in this guide:

ABCDE
1AssetLast serviceInterval (months)Next dueStatus
2Forklift20 Apr 20266
3Air compressor14 May 20266
4HVAC filters15 Aug 20263
5Generator31 Aug 20263
6Fire extinguishers1 Dec 202512
7Delivery van10 Sep 20266

Enter the last service dates as real dates, not text. A quick check: a real date lines up on the right of the cell. You can add more columns later, such as location, owner or notes, without changing the formulas.

How to calculate the next due date with EDATE#

EDATE adds a number of months to a date, which matches how most service intervals are written. In D2, type:

Excel formula
=EDATE(B2,C2)

Format the result as a date (Home > Number Format > Short Date), then fill down (Windows: Ctrl+D; Mac: ⌘D). The results:

AssetLast serviceIntervalNext due
Forklift20 Apr 2026620 Oct 2026
Air compressor14 May 2026614 Nov 2026
HVAC filters15 Aug 2026315 Nov 2026
Generator31 Aug 2026330 Nov 2026
Fire extinguishers1 Dec 2025121 Dec 2026
Delivery van10 Sep 2026610 Mar 2027

Notice the generator. There is no 31 November, so EDATE returns the last day of the month, 30 November. Adding 90 days by hand would drift away from the calendar month. The EDATE function guide and the guide to EDATE and EOMONTH cover more examples.

If an interval is in days or weeks instead, add them directly: =B2+90 for 90 days, or =B2+7*C2 for C2 weeks.

How to flag overdue jobs with IF and TODAY#

TODAY() returns the current date, so you can compare each due date with today and label it. In E2, type:

Excel formula
=IF(D2<TODAY(),"Overdue",IF(D2-TODAY()<=14,"Due soon","OK"))

It reads as: if the due date is before today, show Overdue. Otherwise, if it is 14 days away or less, show Due soon. Otherwise, show OK. If you checked the schedule on 3 November 2026, the results would be:

AssetNext dueDays leftStatus
Forklift20 Oct 2026-14Overdue
Air compressor14 Nov 202611Due soon
HVAC filters15 Nov 202612Due soon
Generator30 Nov 202627OK
Fire extinguishers1 Dec 202628OK
Delivery van10 Mar 2027127OK

The Days left column is simply =D2-TODAY(), formatted as a number. Because TODAY() updates every time the file opens, the status changes by itself. Change 14 to suit your warning period. The IF function guide explains nested IFs, and the TODAY function guide covers how TODAY recalculates.

How to highlight overdue rows with conditional formatting#

Conditional formatting colours the rows that need action, so you see them at a glance. To shade the whole row red when it is overdue:

  1. Select A2:E7.
  2. Go to Home > Conditional Formatting > New Rule.
  3. Choose Use a formula to determine which cells to format.
  4. Enter =$D2<TODAY().
  5. Click Format, pick a light red fill and click OK twice.

The $ before D keeps every cell in the row looking at the due date column. Add a second rule, =AND($D2>=TODAY(),$D2-TODAY()<=14), with an amber fill for jobs due soon. The guide to highlighting overdue dates has more rule ideas.

How to move due dates off weekends#

If a due date lands on a Saturday or Sunday, WORKDAY can move it to the next working day:

Excel formula
=WORKDAY(EDATE(B2,C2)-1,1)

Going back one day and then forward one working day leaves weekday dates unchanged and moves weekend dates to Monday. The air compressor's due date, Saturday 14 November 2026, becomes Monday 16 November. Add a range of public holidays as a third argument to skip those too. See the due date formula guide for other ways to count working days.

How to keep the schedule up to date#

The schedule works only if the last service dates stay current. After each job:

  1. Type the new service date in column B. The next due date and status update by themselves.
  2. Sort by Next due, oldest first, so the next jobs are always at the top.
  3. Keep a separate log sheet with one row per completed job (date, asset, work done, cost) if you need a history.

For usage-based servicing, such as every 500 machine hours or 10,000 miles, add columns for the last reading, the current reading and the interval. Then =IF(current-last>=interval,"Due","OK") flags it. The same structure also works for certificates and contracts, as shown in the expiry date tracker.

Practise it#

The schedule rests on three skills: adding months, writing IF tests and building formatting rules. Practise EDATE, EOMONTH and WEEKDAY in a live spreadsheet, then practise the IF function and conditional formatting. Each step is checked instantly. Or try the exercise on this page: it uses a fixed check date instead of TODAY(), so the answer stays the same.

Try it yourself

This is a live spreadsheet. Type the formula in the green cell and press Enter.

The schedule is checked on the date in B8. In D2, use IF and EDATE to show "Overdue" if the forklift's next service date (last service B2 plus C2 months) is before B8, otherwise "OK".

fx
ABCDE
1
Asset
Last service
Interval (months)
Status
2
Forklift
46132
6
3
Air compressor
46156
6
4
HVAC filters
46249
3
5
Generator
46265
3
6
Delivery van
46275
6
7
8
Check date
46329
9
10
11

Tip: EDATE(B2,C2) gives the next due date. Compare it with $B$8 inside IF, then give the two labels in double quotes.

Practise this in a lesson

LessonRenewals and month-ends: EDATE, EOMONTH, WEEKDAYShift dates by whole months with EDATE, jump to month-end with EOMONTH, and find the day of the week with WEEKDAY.LessonThe IF functionMake a cell show one result or another depending on a condition, like Pass/Fail or Over/Under budget.LessonConditional formattingMake important numbers stand out: highlight values over a limit, duplicate IDs and the top 3, then color whole rows with a formula rule and a $ on the column.Function guideEDATEAdd months to a date with Excel's EDATE for renewals, probation ends and due dates. Month-end behaviour, mistakes and a live practice exercise.Function guideTODAYUse Excel's TODAY function for days until a deadline, overdue flags and ages that update by themselves. Examples, pitfalls and live practice.Function guideIFLearn Excel's IF function with practical examples: flag budgets, label rows and return blanks. Avoid the classic mistakes and practice live.

Frequently asked questions

How do I create a maintenance schedule in Excel?

+

List each asset in a row with its last service date and the service interval in months. Use =EDATE(B2,C2) for the next due date, an IF formula with TODAY() for the status, and conditional formatting to highlight overdue rows.

How do I calculate the next service date in Excel?

+

If the interval is in months, use =EDATE(last_date, months), such as =EDATE(B2,6). If the interval is in days, add the days: =B2+90. Format the result as a date.

How do I highlight overdue maintenance in Excel?

+

Select the rows, go to Home > Conditional Formatting > New Rule, choose Use a formula, and enter =$D2<TODAY() where column D holds the due dates. Pick a red fill and click OK.

Can Excel send maintenance reminders?

+

Excel can't send reminders on its own. The schedule shows what is due when you open it. For alerts, open the file on a set day each week, or sort by due date so the next jobs are always at the top.

How do I schedule maintenance by hours or miles instead of dates?

+

Add columns for the reading at the last service, the current reading and the interval. Then flag it with a formula such as =IF(D2-B2>=C2,"Due","OK").

Sources

  • EDATE function - Microsoft Support
  • IF function - Microsoft Support
  • Use conditional formatting to highlight information - Microsoft Support

Written and checked by the ExcelReady Team. First published November 3, 2026. The practice exercise runs in the same formula engine as our lessons. Found a mistake? Read our editorial policy or email hello@excelready.app.

On this page

  1. What a maintenance schedule needs
  2. How to calculate the next due date with EDATE
  3. How to flag overdue jobs with IF and TODAY
  4. How to highlight overdue rows with conditional formatting
  5. How to move due dates off weekends
  6. How to keep the schedule up to date
  7. Practise it

Keep reading

Dates· 6 min read

EDATE and EOMONTH: Add Months and Find Month-End

EDATE moves a date by whole months: =EDATE(start_date, months) keeps the day where it can, so Mar 15 plus 12 months is Mar 15 next year. EOMONTH moves by months and then jumps to the month's last day: =EOMONTH(B2,0) is the end of B2's month. Negative months go backwards.

Dates· 6 min read

Expiry Dates in Excel: Days Left and Status Flags

An expiry date formula in Excel usually has three parts. Work out the expiry date with =EDATE(B2,12) for 12 months after the issue date. Count the days left with =C2-TODAY(). Then flag the status with =IF(C2<TODAY(),"Expired",IF(C2-TODAY()<=30,"Expiring soon","OK")). Because TODAY updates daily, the tracker stays current by itself.

Dates· 5 min read

Highlight Overdue and Upcoming Dates in Excel

To highlight overdue dates in Excel, select the rows, go to Home > Conditional Formatting > New Rule, choose Use a formula, and enter =AND($C2<>"",$C2<TODAY()), where C holds the due dates. Pick a red fill. For dates due within the next 7 days, add a second rule: =AND($C2>=TODAY(),$C2<=TODAY()+7). The colours update every day.

More on projects

  • Mileage Log in Excel: Track Trips and Reimbursements
  • Build a Monthly Budget in Excel
  • How to Build a Net Worth Tracker in Excel
  • Build an Order Tracker in Excel
  • Calculate Hours Worked and Overtime in Excel
  • Build a Simple Payroll Calculator in Excel
All projects articles →

Don't just read about Excel. Do it.

Practise real formulas in a live spreadsheet with instant feedback, right in your browser. Nothing to download.

Start learning for free