ServiceM8 ↔ Google Calendar (UK): fix one‑hour shifts, duplicates and missing jobs around BST/GMT featured image
Integrations

ServiceM8 ↔ Google Calendar (UK): fix one‑hour shifts, duplicates and missing jobs around BST/GMT

TrainAR Team 1 month ago 4 min read

ServiceM8 ↔ Google Calendar (UK): fix one‑hour shifts, duplicates and missing jobs around BST/GMT

UK trades teams often hit three calendar headaches when linking ServiceM8 with Google Calendar: a mysterious one‑hour shift around daylight‑saving, duplicate events, and jobs that simply don’t show up. This practical guide explains exactly why it happens in the UK (BST ↔ GMT), how to configure both systems, and how to clean up without breaking your schedules.

Dispatcher comparing ServiceM8 schedule and Google Calendar with a BST→GMT one‑hour shift warning

Who this is for

  • UK plumbing, electrical, HVAC, and building firms using ServiceM8 for dispatch with staff on Google Calendar
  • Office coordinators and owners who want calendars to match the dispatch board exactly, even through clock changes

At a glance: the 3 causes

  1. Fixed time zones (UTC/GMT) instead of Europe/London on the org, users or devices.
  2. All‑day or “floating” events exported as UTC timestamps rather than date‑only, which shift by +1hr in BST.
  3. Two systems writing the same job in different ways (full 2‑way vs ICS subscription), creating duplicates or gaps.

The UK‑correct setup (10‑minute checklist)

  • ServiceM8
    • Company time zone: Europe/London.
    • Every staff member profile: Europe/London.
    • Integration: choose either 2‑way sync OR a read‑only ICS subscription, not both. Prefer 2‑way for live teams.
    • Event titles: keep PII out; use “#JobNo ShortName, Area/Postcode”.
  • Google Calendar (web)
    • Settings → Time zone → Primary = London. Tick “Display secondary time zone” only if needed.
    • If using ICS: add by URL to a dedicated calendar called “ServiceM8 Jobs – Read Only”.
    • Disable duplicate notifiers if ServiceM8 already sends job reminders.
  • Devices (iOS/Android)
    • Set Automatically = ON; Region = United Kingdom; Time Zone = London.
    • iOS: Settings → Calendar → Time Zone Override OFF (or London).

Fix the 1‑hour shift (BST/GMT) reliably

  • Root cause: events saved/parsed in UTC rather than Europe/London.
  • Quick fix
    • In ServiceM8 and Google, set Europe/London everywhere (org + users + devices).
    • Recreate two tests: one in September (BST) and one in November (GMT). Both should show the same local time.
  • If all‑day jobs shift
    • Ensure all‑day exports are date‑only (not 00:00Z‑23:59Z). If your current feed uses UTC timestamps, toggle All‑day off/on in ServiceM8 and resync, or switch to 2‑way sync.

Stop duplicates before they start

  • Pick one write‑path
    • Option A (recommended): ServiceM8 → Google (jobs) and Google → ServiceM8 (Busy blocks only from a single “Unavailability” calendar). Do not let generic Google events create jobs.
    • Option B: Read‑only ICS in Google for visibility. Do not also enable 2‑way.
  • Typical duplicate patterns and fixes
    • Same calendar added twice under different Google accounts → remove one subscription/share.
    • API tool (Zapier/Make) also creating calendar events → pause the automation or narrow triggers.
    • Auto‑add invites on in Google + ServiceM8 invite → turn off Google “Automatically add invitations” for these calendars.

Make missing events reappear

  • If using ICS
    • Google caches feed updates; refresh can take hours. For urgent visibility, use 2‑way sync or open the ICS URL in a browser to ensure it serves fresh data.
  • If using 2‑way sync
    • Check permissions: the Google account connected to ServiceM8 must have “Make changes to events” on the target calendars.
    • Confirm the event owner: open a missing event on the ServiceM8 job card, then search the exact title in Google across “All calendars”.
  • Windows not promises: AM/PM or 10:00–12:00 for first visits; convert to exact times once access/parts are confirmed.
  • Travel buffers: 20–30 mins urban; 40–60 mins rural. Build default buffers into your job templates.
  • Emergency lane: hold back one slot per region for same‑day jobs.
  • Privacy: keep full address/phone in ServiceM8 notes; keep Google titles clean (GDPR‑friendly).

Troubleshooting quick wins

  • Event shows 09:00 in Google for a 10:00 job
    • Google event time zone shows UTC/GMT → change to Europe/London; check device Time Zone Override.
  • All‑day company holiday appears as 01:00–01:00
    • Re‑save as true all‑day; avoid UTC timestamps in feeds.
  • Duplicates after reconnecting
    • Remove old ICS calendars first; then reconnect 2‑way. Create one fresh test job and confirm only one event appears.

Copy‑paste SOP for your team

Source of truth: ServiceM8
Google use: team visibility + staff unavailability
Time zone: Europe/London (org, users, devices)
Job titles: #JobNo ShortName, Area/Postcode (no PII)
Two‑way rules: Only Busy blocks from the “Unavailability” calendar create conflicts; no new jobs from Google
Change control: If an appointment time changes, edit in ServiceM8 only

Short video: linking ServiceM8 to Google Calendar

This UK‑made walkthrough covers the basic connection steps. It’s a good visual companion to the checklist above.

Appendix: 5‑minute diagnostic flow

  1. Check org/user/device time zones = Europe/London.
  2. Identify sync type: 2‑way vs ICS. If both, pick one and remove the other.
  3. Inspect a shifted event’s time zone in Google → should say London.
  4. Create two new test jobs (one in BST, one in GMT) → verify no 1‑hour offset.
  5. Audit for third‑party automations writing to calendars (Zapier/Make) and pause them during tests.

— Have a specific example that’s shifting or duplicating? Post it in the comments with the exact date/time and we’ll reply with the targeted fix.