FFP Guides

Integration

Does ServiceM8 sync with Google Calendar both ways?

No. ServiceM8's External Calendars add-on publishes each staff member's schedule as a view only feed that Google Calendar subscribes to, and it is not updated in real time. The separate Calendar Import add-on pulls Google busy times onto the Dispatch Board every 15 minutes. Editing an event in Google never moves the ServiceM8 job.

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

What syncs, and when

WhatDirectionWhenNotes
Scheduled jobs (per staff member)ServiceM8 to Google CalendarGoogle refreshes the subscribed feedView only. ServiceM8 says the feed is not real time, so recent changes can take time to show. Each staff member has their own URL.
Google events as busy timeGoogle Calendar to ServiceM8Every 15 minutes (Calendar Import add-on)Shows the staff member as Busy on the Dispatch Board and feeds Booking Suggestions. Covers 90 days forward and 30 days back.
Edits made in Google CalendarNoneNeverDragging or deleting the event in Google changes nothing in ServiceM8. Reschedule on the Dispatch Board or in the app.

What does not sync

  • Changes made in Google Calendar to ServiceM8 jobs. The feed is read only.
  • Google event details. Calendar Import brings across busy time only, not the event as a job.
  • Instant updates. Neither direction is real time: the outbound feed depends on Google's refresh, and the import runs every 15 minutes.
  • Imported events more than 90 days ahead or more than 30 days back.
  • A whole team in one feed. You add one calendar URL per staff member.

Set it up

  1. Jobs into Google: in ServiceM8 go to Settings, ServiceM8 Add-ons and turn on External Calendars, then click Settings on the add-on.
  2. Copy the calendar URL for the staff member you want to see.
  3. In Google Calendar on a computer, next to Other calendars click Add other calendars, choose From URL, paste the link and click Add calendar.
  4. Repeat for each staff member. Treat these URLs like passwords, since anyone with one can see that schedule.
  5. Busy time into ServiceM8: turn on the Calendar Import add-on in ServiceM8 Add-ons.
  6. In Google Calendar, open Settings and sharing for the staff member's calendar. ServiceM8's guide makes the calendar public and copies the iCal link from Integrate calendar; if you do, choose See only free/busy (hide details).
  7. In ServiceM8 go to Settings, Staff, edit the staff member, open Options and paste the link into Import Free/Busy Time from Calendar URL. Save.

Two add-ons, two directions

People search for a two way sync because they want one calendar to be the truth. ServiceM8 does not work like that. It has two separate add-ons, each doing one job in one direction.

External Calendars sends jobs out. It publishes a calendar feed per staff member, and Google Calendar (or Outlook, or the iPhone calendar) subscribes to it. ServiceM8 is plain that you can see but not change the schedule there, and that the feed is kept in sync but not in real time.

Calendar Import brings availability in. It reads an iCal link from a staff member's Google calendar every 15 minutes and blocks that time as Busy on the Dispatch Board, so the office does not book a job over a dentist appointment. It does not create jobs from Google events, and it only looks 90 days ahead and 30 days back.

Why moving the event in Google does nothing

A subscribed calendar in Google is a copy that Google fetches from ServiceM8. Nothing travels the other way: ServiceM8 says changes must be made on the Dispatch Board or in the app. The job's real time lives only in ServiceM8. If staff reschedule from their phone calendar, the customer's booking confirmation, the dispatcher's view and the invoice timing all stay wrong.

Set one rule for the team: the Dispatch Board or the ServiceM8 app is where jobs move. Google is for looking.

The refresh delay, and when it matters

Because the outbound feed is not real time, an urgent change made at 7am may not show in a technician's Google Calendar before they leave. Google's help on adding a calendar from a URL does not say how often it refreshes, so do not rely on it for same day changes. For those, the ServiceM8 app is the live view, and a phone call or SMS from the job is the backup.

On the import side, the 15 minute cycle is usually fine for personal appointments. Ask staff to add them as early as they can.

Keep the links private

Each staff calendar URL from ServiceM8 shows that person's jobs to anyone who has it, so do not paste it into shared documents. On the Google side, ServiceM8's instructions make the calendar public before copying its iCal link. If you follow that route, set public access to See only free/busy so event details are hidden. Google also offers a Secret address in iCal format for each calendar, which it says only you should know and which you can reset if it leaks.

Sources

  1. The External Calendars add-on lets you see but not change your ServiceM8 schedule in Google Calendar; each staff member has their own calendar URL; the Google calendar is kept in sync but not in real time, so recent scheduling changes may take time to show. ServiceM8 Help Center, checked 25 Sep 2026.
  2. The Calendar Import add-on imports a staff member's free/busy time from an external calendar's iCal URL onto the Dispatch Board and Booking Suggestions; calendars update every 15 minutes and sync 90 days forward and 30 days back. ServiceM8 Help Center, checked 25 Sep 2026.
  3. Outlook shows the ServiceM8 schedule view only, and it is not real time. ServiceM8 Help Center, checked 25 Sep 2026.
  4. In Google Calendar you add a calendar by link from Other calendars, Add other calendars, From URL. Google Calendar Help, checked 25 Sep 2026.
  5. When making a Google calendar public, you can select See only free/busy (hide details) so others cannot read event details. Google Calendar Help, checked 25 Sep 2026.
  6. Each Google calendar has a Secret address in iCal format that should not be shared and can be reset to invalidate the old address. Google Calendar Help, checked 25 Sep 2026.