ServiceM8 how-to
Why is the time on my ServiceM8 form 12 hours out?
ServiceM8 forms have no time question, so a printed time comes from a typed text answer or a date and time merge field shaped by the Word template's format switch. A 12 hour clock format (h or hh) without an AM/PM item, or a hard typed 'am', prints PM times 12 hours out. Use HH:mm or add AM/PM.
Last checked 25 Sep 2026 against the sources listed at the end of this page.
Fixable without code: correct the Word time format (HH:mm, or h:mm am/pm), or stop typed times, and check the account timezone.
Step by step
- Find the source of the time: open the form in Settings, Forms and see whether a Text question captures it, or whether it only appears in the Word template.
- If it is in the template, download it, right click the time field and choose Toggle Field Codes to read its format switch.
- Replace the format with \@ "HH:mm" for 24 hour time, or \@ "h:mm am/pm" for 12 hour time. Delete any am or pm typed as plain text beside the field.
- Check M versus m: an uppercase M prints the month, so minutes must be a lowercase m.
- Save, upload the template to the form, and use Preview on the Forms page with one morning and one afternoon test before going live.
- If the time is typed by the tech, rename the question to 'Time (24 hour)' with an example in Additional Details, or replace it with a check in time field in the template.
- Check the account timezone in Settings, Preferences, Region & Language Settings, Account Timezone, especially if times are out by a number of hours other than 12.
- If the form PDF is produced by an integration, confirm it converts ServiceM8's UTC timestamps to local time.
Gotchas
- ServiceM8 has no Time question type. Any typed time is text and prints exactly as typed.
- Question names should use only letters and numbers. ServiceM8 warns that symbols such as / ( ) # & - and : in question names can break the generated PDF, so write 'Time 24 hour', not 'Time (24hr):'.
- Editing a field name by typing over it can break the merge. ServiceM8's template tips say to right click, Edit Field, instead.
- The template preview on the Document Templates screen does not always render fields properly. Test by producing the real PDF from a job.
- API and webhook timestamps are UTC. An integration that prints them raw is out by the full UTC offset, which can look like a 12 hour error.
What the official help article misses: It lists the question types but does not point out there is no time type, does not cover Word's time format switches, and has no troubleshooting for times printed 12 hours out. Read ServiceM8's article.
Where a form's time actually comes from
ServiceM8's form question types are Text, Text (Multi-line), Number, Date, Multiple Choice, Multiple Choice (Multi-answer), Signature and Photo. There is no Time question. So when a completed form shows an arrival or completion time, it came from one of three places, and the fix depends on which:
A Text question the tech types into. Whatever they type is printed. "2:30" means 2:30, and nobody knows if it was morning.
A date and time merge field in the Word template, such as the last check in start or completion date/time that ServiceM8 lists among its template fields. Word applies whatever date and time format switch is on the merge field.
Data from an integration or the API. ServiceM8's API stores form submission timestamps in UTC, in the format YYYY-MM-DD HH:MM:SS. Anything that prints that value without converting it is out by your whole UTC offset, and in a timezone 12 hours from UTC that looks exactly like an AM/PM swap.
ServiceM8's help centre does not document an AM/PM fault in forms, so treat the checks below as a diagnosis order rather than a known bug.
The Word format switch, which is the usual culprit
Open the form's Word template, right click the time field and choose Toggle Field Codes to see the code behind it. A time format is written after \@ in quotes. Microsoft's rules: a lowercase h is the 12 hour clock and an uppercase H is the 24 hour clock; hh or HH adds a leading zero; AM/PM or am/pm prints the suffix; M is months and m is minutes.
So \@ "hh:mm" on its own prints 2:30 PM as 02:30, with no way to tell it from 2:30 AM. If someone "fixed" that by typing am or pm as plain text after the field, every time on the other half of the day is 12 hours out. And \@ "hh:MM" prints the month where the minutes should be.
The reliable fix is \@ "HH:mm" for 24 hour time, or \@ "h:mm am/pm" if customers prefer 12 hour time. Save, upload the template, then preview the form with a PM time and an AM time before relying on it.
If the time is typed
A typed time is just text, so the fix is not formatting but removing the ambiguity. Either change the question so the ambiguity cannot happen, or remove the question and print a system time instead. The simplest version is two questions: a Text question named "Time (24 hour)" with the Additional Details line "for example 14:30", or a Multiple Choice AM/PM question next to a Text time question.
Better still, if the time you want is when the tech arrived or finished, use ServiceM8's own check in time fields in the template. Techs already check in and out; the time is recorded without anyone typing it.
Sources
- ServiceM8 form question types are Text, Text (Multi-line), Number, Date, Multiple Choice, Multiple Choice (Multi-answer), Signature and Photo. ServiceM8 Help Center, checked 25 Sep 2026.
- In Word's date and time format switch, a lowercase h uses the 12 hour clock and an uppercase H the 24 hour clock; AM/PM or am/pm displays the suffix; M must be uppercase for months and m lowercase for minutes. Microsoft Support, checked 25 Sep 2026.
- ServiceM8 template fields include last check in start date/time and last check in completion date/time. ServiceM8 Help Center, checked 25 Sep 2026.
- A ServiceM8 form response timestamp is the date and time the form was submitted, in the format YYYY-MM-DD HH:MM:SS in UTC. ServiceM8 Developer, checked 25 Sep 2026.
- ServiceM8 uses the account timezone, set at Settings, Preferences, Region & Language Settings, Account Timezone, when displaying and scheduling booking times. ServiceM8 Help Center, checked 25 Sep 2026.
- ServiceM8 advises using only letters and numbers in form question names, as symbols can cause problems when the completed form PDF is generated. ServiceM8 Help Center, checked 25 Sep 2026.
- ServiceM8's template tips say not to edit a field name by typing over it, and that the Document Templates preview may not display fields properly, so test by producing a PDF from a job. ServiceM8 Help Center, checked 25 Sep 2026.