← Al Davies, 250 High Street

An equipment maintenance log in SharePoint for a clinic or lab

Short answer: keep two linked SharePoint lists. Equipment has one row per instrument with its next service date. Service records gets one new row each time an instrument is serviced. A scheduled Power Automate flow then emails a daily digest of items coming due, so the schedule no longer depends on anyone's memory.

Dates slip because a service is rare and nobody sees the gap grow. The date sits on a sticker or in one person's calendar. This guide covers the two lists, one view and the flow. It does not say what needs servicing, how often, or against which standard. The maker's manual and your own policy answer that. Exact names may differ on your screen. Microsoft's help pages are linked at the end.

Free template columns: a sample log

You can build this log in SharePoint or in Excel. These are the columns to build, with three example rows. Row numbers are only for reference.

Equipment list:

Service records list:

Excel version: the same columns work on two sheets, one for equipment and one for service records. In SharePoint, Microsoft says to select Export, then Export to Excel from the command bar of the list. Microsoft says the Excel table has a one-way connection to the list, so changes made in Excel are not sent back to the list.

Schedule, log and checklist: three different things

Our advice, not a Microsoft rule: keep these three apart.

One device, from install to the next service

Picture Device 12, a bench centrifuge, tag 0042, in Room B. Three events in its life decide what the lists must hold.

  1. Installed: a row appears in the Equipment list with its name, tag, room, interval and first service date.
  2. Serviced: a row appears in the Service records list with the date done, who did it and the result.
  3. Due again: the Equipment row gets a new Next service date, and the flow stops naming the device until that date nears.

Every column below exists to carry one of those three events.

Where the date hides

The two lists answer the first four. The reminder flow answers the last one.

Two lists, linked by asset tag

Equipment holds the present state. Service records holds the past. Build Equipment first, because the other list points at it.

Equipment list, one row per instrument, such as "Analyzer 7" or "Autoclave 3":

  1. Make a blank list named "Equipment".
  2. Rename the required Title column to "Equipment name".
  3. Add "Asset tag" as Single line of text. It matches the label on the instrument and is the one place the tag is typed.
  4. Add "Location" as Single line of text.
  5. Add "Service interval days" as Number, such as 90. Our advice, not a Microsoft rule: copy this number from the maker's manual and your own policy.
  6. Add "Next service date" as Date and time, date only.
  7. Add "Out of service" as Yes/No, so the list shows which instruments are down today. No view or flow in this guide reads it.

Service records list, one row per visit:

  1. Make a second blank list named "Service records".
  2. Rename Title to "Record title" and give each row a short name, such as "Device 12 service 2026-03".
  3. Add "Equipment" as Lookup. Choose the Equipment list as the source and "Equipment name" as the shown column. The source list must be on the same site. Tick "Asset tag" as an extra column to show, so the tag appears here without being retyped.
  4. Add "Date done" as Date and time, date only.
  5. Add "By" as Person, or Single line of text for an outside company.
  6. Add "Result" as Choice, with numbered values:

    1 Pass

    2 Fail

    3 Needs part

  7. Check that Attachments is on, so the service certificate can ride with the row. The exact names may differ.

Our advice, not a Microsoft rule: the leading number keeps the Result values easy to tell apart. Microsoft's lookup-columns page says a lookup can pull only certain column types. Title and Single line of text qualify.

Log a service, then move the date

After each visit, two edits, in this order:

  1. In Service records, add a row: pick the equipment, enter the date done, the technician and the result, and attach the certificate.
  2. In Equipment, set "Next service date" to the date done plus the interval from the maker's manual and your own policy.

The second edit is a manual step on purpose. It keeps the build small and easy to check. If the result is "2 Fail" or "3 Needs part", one way to start is to leave the old date alone until the device passes.

A Due soon view

The morning digest pushes. The view lets someone pull. It lives on the Equipment list and shows every instrument whose service date falls within 30 days. A calculated "days left" column is not an option: SharePoint rejects [Today] in calculated formulas, and Microsoft's TODAY page limits it to default values. A view filter does accept [Today].

  1. On Equipment, open the view switcher at the top right and pick Edit current view. This opens the classic view editor. Microsoft says a filter set from a column header rejects [Today] and [Me], so use this editor.
  2. Under Filters, choose Show items only when the following is true.
  3. Pick Next service date, choose "is less than or equal to", and enter [Today]+30.
  4. Sort by Next service date, ascending, and save the view as "Due soon".

A date already behind today is also below [Today]+30, so overdue units sit at the top with no second view.

A morning digest flow

A view helps only when someone opens it. A scheduled flow carries the same answer to an inbox. The general pattern sits in "Send a reminder before a due date in a SharePoint list". This flow reads Equipment, not Service records, and sends one digest for the whole site.

  1. In Power Automate choose Create, then Scheduled cloud flow. Name it "Equipment due digest", repeat every 1 Day, and start at a morning hour in your own time zone.
  2. Add the SharePoint action Get items and point it at Equipment.
  3. Microsoft's page on Get items says: "The default item limit is 100". It also says: "If you are working with large lists, you can increase this limit up to the list view threshold limit of 5,000." Set Top Count above your instrument total, such as 500. If you will ever have more than 5,000 instruments, also turn Pagination on in the action settings. With Top Count left empty, an instrument past row 100 never reaches the digest.
  4. Fill Filter Query with the column's internal name, where each space becomes _x0020_. Open the column settings and read the web address after Field= to confirm it. To catch anything due within 14 days, write:

    Next_x0020_service_x0020_date le 'formatDateTime(addDays(utcNow(),14),'yyyy-MM-dd')'

    Enter the part inside the outer quotes as an expression with the fx button, not as typed text. Microsoft's Get items page uses the same form and notes that formatDateTime(utcNow(),'yyyy-MM-dd') is an expression. Replace 14 with your own warning window, then test on sample rows, because time zones can shift a date by one day.

  5. Add Create HTML table, with From set to the value output of Get items. Show four columns: Equipment name, Asset tag, Location and Next service date. Example row: Device 12, tag 0042, Room B, one date.
  6. Add a Condition before the email so an empty morning sends nothing. The test: the Get items output is not empty, using the empty function from Microsoft's function reference.
  7. On the yes branch add Send an email (V2) from Office 365 Outlook, addressed to whoever owns equipment upkeep. Body: one sentence, the table, and a link to the Due soon view. Microsoft's data operations page mentions an IsHtml setting, but Send an email (V2) already treats the body as HTML, so the setting may not appear. Send a test and confirm the table renders as a table.
  8. Save, run once, and open the run history to read each step's output.

Name a second editor for the flow. A flow with one owner can stall when that person leaves.

Keep patient and sample data out

This log tracks machines, not people. Keep patient names, specimen numbers and any detail that points to an individual out of every column, note and attachment. For a service row, the instrument, the date, the technician and the outcome are enough.

A filtered view hides nothing from anyone who can open the list. If a smaller group should see it, change the list's permissions. Microsoft's list-permissions page covers giving a list its own permissions, and it recommends the built-in SharePoint groups. Talk to your admin first.

Where this goes wrong

An asset tag typed into both lists ends up spelled two ways, and the link between them breaks. Pick it from the lookup instead.

A service row added without moving Next service date leaves the digest quoting the old date, so the two edits are one task.

One list for both live devices and their history makes the due view fill with old visits. Keep Equipment short and Service records long.

A retired device keeps appearing in Due soon while it still has a Next service date. Clear the date or delete the Equipment row, and keep its Service records rows as history.

Honest limits

The email reports dates. It does not book a technician or confirm that work happened. Accuracy rests on one habit: after every visit, update Next service date on Equipment. If that step is skipped, the digest repeats an old date. A calculated "days left" column will not work here, so rely on the view and the flow. Service intervals on this page, or any web page, are not a source; the maker's manual and your policy are. Licensing is outside this page; ask your admin which licenses the actions need before you build.

If your records are on a spreadsheet today, see "Replace a spreadsheet tracker with a SharePoint list". To record who has an instrument out, see "Equipment checkout with no record: how to track who has what". For a register covering every asset, see "How to set up an asset register in SharePoint".

When to get help

You can build all of this yourself in Microsoft 365. If you would rather have it built and tested for your team, I do that. A tracker like this is a fixed price: $5,000 for one, built in 2 weeks. See "What a SharePoint tracker costs to build". Bring one example of the problem to a free call.

Tell me what's still manual

I am Al Davies. I run 250 High Street LLC and build SharePoint trackers and Power Automate flows for operations teams. I work remotely. The first call is free, and I will not try to sell you anything.

See trackers I built: Tools I built

FAQ

Is there a free equipment maintenance log template in Excel?

The sample columns above give you the layout for Excel or SharePoint, and Microsoft says Export, then Export to Excel from the list command bar makes an Excel copy.

How do I build an equipment maintenance schedule?

Add a Service interval days column and a Next service date column to the Equipment list, then use the Due soon view and the morning digest flow.

What is the difference between a maintenance log and a checklist?

The log records what was done and when, while a checklist lists what to check during a visit; this guide builds the log.

How do I keep an equipment repair log?

Add one row to Service records for each repair, with the equipment, the date done, who did it and the Result.

Can I use a calculated column for days left?

No. SharePoint blocks [Today] in calculated column formulas, so use a view filter in the classic view editor and the reminder flow.

Sources