Tasks & calendar

Google Calendar integration for fleet tasks

Connect fleet tasks to Google Calendar with a service account: share the calendar, set reminders and sync overdue tasks without blocking saves.

Updated: 23 September 2026

Tasks with a deadline — an inspection, an oil change, a lease payment — can appear on the owner's shared Google calendar so they are visible outside the panel, for example on a phone. The integration works through a Google service account, not by the administrator signing in to Google. This guide covers configuring the connection, sharing the calendar and syncing existing tasks.

Set up the Google service account

  1. In Google Cloud Console, create a project and enable "Google Calendar API".
  2. Create a service account and generate a JSON key for it.
  3. In the panel, open Settings → Google Calendar and copy the client_email field from the JSON file into Service account email, and private_key into Private key.
  4. In Google Calendar (owner account), open the settings of the chosen calendar → "Share with specific people" → add the service account email with the Make changes to events permission.
  5. Enter the Primary calendar ID (for the primary calendar this is usually the owner's email address; for an additional calendar it is a string such as xxx@group.calendar.google.com), set the Default time zone, Default reminder and Default reminder method, then click Save configuration.
Google Calendar settings with service account fields and calendar ID
This screenshot shows the Polish interface. The How to configure — step by step section walks through the whole setup, including sharing the calendar.
Skipping the calendar-sharing step with the Make changes to events permission is the most common cause of a 403 error — even when the email and private key are correct.

Test the connection

After saving, click Test connection. If the test fails, the Full configuration diagnostics link below the buttons shows more detail than the error message alone.

Sync existing tasks

The Settings → Calendar synchronization screen shows three counters: All tasks in the company regardless of status, tasks Without a calendar event, and the number of tasks In “Synchronize” scope. The Synchronize tasks button covers only incomplete tasks with a deadline in the last 90 days — usually enough to catch up right after configuring the integration. Full history creates events for the company's complete history; the panel asks for confirmation before running it, since it can take a long time and fill the calendar with old entries. After a sync finishes, the report table shows the result per task in the Task and Calendar columns.

Calendar synchronization screen with counters and a Synchronize tasks button
The Without a calendar event counter shows how many tasks are still waiting for an event.

A calendar error never blocks a task

Saving or completing a task never waits on Google Calendar. When creating or updating an event fails, the panel still saves the task and shows a separate warning — "Warning: calendar not synced" when adding a task, "Calendar sync error" when completing one. In that case, check the permissions in Google Calendar and run Test connection again rather than saving the same task repeatedly.

Next steps

Frequently asked questions

Why does Google Calendar return a 403 error?

Usually because the calendar was not shared with the service account with the Make changes to events permission.

Which fields from the service account JSON file go into the panel?

client_email into Service account email, and private_key into Private key.

How many tasks does Synchronize tasks cover?

Incomplete tasks with a deadline in the last 90 days.

Does a sync error block saving or completing a task?

No. The task is saved, and the panel shows a separate warning about the calendar.

What is Full history for in calendar synchronization?

It creates events for the company’s complete history — it can be slow and fill the calendar with old entries, so the panel asks for confirmation.

Czytaj po polsku →

Related articles