FFP Guides

ServiceM8 how-to

How do you show the next inspection due date on a ServiceM8 report?

ServiceM8's template fields include no due-date calculation: form questions only capture Text, Number, Date, Choice, Signature or Photo answers. To print a next inspection date on a certificate, add a Date question for staff to enter, then merge its Template Field Code into the document, or use a recurring job's own next booking date.

Last checked 25 Sep 2026 against the sources listed at the end of this page.

Not natively

No calculated field exists. Enter the next inspection date as a Date answer on the form, worked out by whoever completes it, and merge that answer onto the certificate, or rely on a fixed recurring job's own next booking date instead.

Step by step

  1. Open Settings, Forms, and edit the form used for this inspection or certificate.
  2. Click New Question, name it something like Next Inspection Due, using only letters and numbers, and set the Question Type to Date.
  3. Save the form, then note the Template Field Code ServiceM8 generates for that question, shown in the question details, following the form_ plus question name pattern.
  4. Open the form's linked Word document template, place the cursor where the date should print, then go to Insert, Quick Parts, Field, select MergeField, and enter that Template Field Code. On a Mac, use Insert, Field, then MergeField instead.
  5. Save the template. Staff now see the Date question in the app, and whatever date they enter prints wherever you placed the merge field.
  6. If the interval is fixed and regular instead, set the client up as a Recurring Job on a Job Template, not a Reminder, and use the field job.next_booking_date_extended in the document template instead of a form question. It fills in automatically from the next scheduled booking.

Gotchas

  • There is no formula or calculation question type. Whoever completes the form has to work out the due date themselves, from a test interval, a manufacturer schedule or a fixed contract term, and type it in as a Date answer.
  • Only letters and numbers are safe in a form question's name. Symbols such as / \ ( ) # & : or an apostrophe in the question name can break the generated PDF, per ServiceM8's help centre.
  • job.invoice_due_date and job.invoice_due_date_from_today are the only fields ServiceM8 calculates from another date automatically, and both are tied to payment terms, not a service interval. They cannot be repurposed for an inspection due date.
  • job.next_booking_date_extended only has a date to show if the next visit is already scheduled. Recurring Jobs and Reminders is one add-on with two modes: short, fixed cadences run as Recurring Jobs, booked ahead, while longer 6 or 12 month cadences run as Reminders, with the date confirmed closer to the time, so a Reminder-based job may have nothing to print yet.
  • A merge field with the wrong Template Field Code, or one that does not match the question name exactly, will not populate, and ServiceM8 does not flag the mismatch. It is easy to miss until the certificate has already gone out.

What the official help article misses: It shows how to wire up any form question as a merge field, but does not mention that no question type calculates a date, does not point to job.next_booking_date_extended as an alternative for a fixed recurring schedule, and does not warn that job.invoice_due_date is unrelated to service due dates despite the similar name. Read ServiceM8's article.

Why there is no calculated field

ServiceM8 form questions come in eight types: Text, Text (Multi-Line), Number, Date, Multiple Choice, Multiple Choice (Multi-Answer), Signature and Photo. None of them calculates a value from another one, so there is no way to tell a form "print the service date plus 12 months" and have it produce a date on its own.

ServiceM8's own templates do calculate one date field automatically: job.invoice_due_date, worked out from the job's saved Invoice Date and any non standard Payment Term set for the client. That proves the platform can do date arithmetic internally, just not one you control from a form question, and not for a service or inspection interval.

The workaround: enter it, then merge it

Add a Date question to the relevant form, for example "Next inspection due", and save the form. ServiceM8 generates a Template Field Code for that question, following the form_ plus question name pattern. Staff work out the due date themselves, from a standard's interval, a manufacturer schedule or a contract term, and enter it as their answer when they complete the form on the job.

Open the form's linked Word document template, place the cursor where the date should print, then use Insert, Quick Parts, Field, MergeField (Insert, Field on a Mac) and paste that exact Template Field Code in. Save the template, and the date staff typed in the field will print wherever you placed it.

The other native option: recurring jobs

If the cadence is fixed and regular, for example a 12 monthly test cycle booked well ahead, setting the client up as a Recurring Job on a Job Template means ServiceM8 already knows the date of the next visit. The global field job.next_booking_date_extended will then print that date automatically on the completed job's template, with no form question needed.

This only works for the Recurring Jobs side of the add-on, which is for fixed, scheduled cadences. Reminders, the same add-on's other mode, manages longer 6 or 12 month cadences where the date is confirmed closer to the time, so a Reminder-based job may have no next booking date to print until it is actually scheduled.

Sources

  1. ServiceM8 form questions support only these types: Text, Text (Multi-Line), Number, Date, Multiple Choice, Multiple Choice (Multi-Answer), Signature and Photo. None calculates a value from another field. ServiceM8 Help Center, checked 25 Sep 2026.
  2. Each form question generates its own Template Field Code, for example form_site_contact, which is entered as a MergeField in the linked Word document template to print that answer. ServiceM8 Help Center, checked 25 Sep 2026.
  3. job.invoice_due_date prints the date an invoice is due, calculated from the job's saved Invoice Date, or a client's non standard Payment Term if one is set, not from any service or inspection interval. ServiceM8 Help Center, checked 25 Sep 2026.
  4. job.next_booking_date_extended prints a job's next scheduled booking date, including the weekday, in the account's regional long-date format, as a global template field. ServiceM8 Help Center, checked 25 Sep 2026.
  5. Recurring Jobs cover regular, fixed cadence work such as weekly or fortnightly service intervals, while Reminders manage longer 6 or 12 month cadences where the date, job and staff member are confirmed closer to the time. ServiceM8 Help Center, checked 25 Sep 2026.