Instruction
Beheer > Integraties > Google Calendar

The Google Calendar integration needs configuration on two sides: first an OAuth client in Google Cloud, then the integration itself in i-Reserve. This article covers both sides in order. The Google Cloud steps are independent of i-Reserve and are performed in the Google Cloud Console.

1. On the Google Cloud side

1.1 Project and API

  1. Open the Google Cloud Console (console.cloud.google.com) and create or select a project.
  2. Go to APIs & Services → Library, search Google Calendar API and click Enable.

1.2 OAuth consent screen

  1. Go to APIs & Services → OAuth consent screen.
  2. Choose the user type: Internal (own Workspace only) or External.
  3. Fill in app name, support e-mail and optionally a logo.
  4. Add the scopes: .../auth/calendar.readonly and .../auth/calendar.events.
  5. For External in testing mode: add the user who will sign in as a test user.

1.3 OAuth client (credentials)

  1. Go to APIs & Services → Credentials → Create credentials → OAuth client ID.
  2. Application type: Web application.
  3. Under Authorized redirect URIs add the redirect URI i-Reserve shows, typically {base_url}/integrations/redirect/{int_id}.
  4. Note the Client ID and the Client secret.

2. On the i-Reserve side

Go to Administration → Integrations and add a Google Calendar integration (or open an existing one). It has an authentication screen and a configuration screen.

2.1 Authentication screen

FieldWhat to enter
Client IDThe OAuth client ID from Google Cloud.
Client secretThe matching client secret.
Return urlThe redirect URI. Use exactly the value i-Reserve shows and register that same URI in the Google OAuth client.

Then run the two buttons in order:

  1. Step 1: consent — opens the Google consent screen. Sign in with the desired Google user and approve the requested calendar permissions.
  2. Step 2: connect to Google Calendar — exchanges the consent for the stored tokens (access + refresh). After this the connection is live and i-Reserve fetches the available calendars.

2.2 Configuration screen — outbound (events from i-Reserve)

FieldWhat to enter
Field for i-Reserve event idThe booking field that stores the Google event id (the booking ↔ event link). Default external_id.
TemplateThe e-mail/booking template used to build the event title and description.
Create Google Meet linkYes/No — create a Google Meet meeting with the event.
Field for Meet linkBooking field to store the Meet join URL (if the above is Yes).
Reminders (popup / e-mail)Minutes before the start for a popup and/or e-mail reminder (0–1440; 0 = off).
Use customer dataYes/No — add the customer as attendee.
Create on statusThe booking status(es) on which an event is created in Google.
Delete on statusThe booking status(es) on which the Google event is deleted.

2.3 Object → calendar mapping

Per i-Reserve object, map the correct Google calendar (calendar id). A row with wildcard * acts as the default calendar for objects without their own row. This mapping determines which calendar outbound events go to and which calendar is followed inbound.

2.4 Configuration screen — inbound (events from Google)

FieldWhat to enter
Inbound objectThe i-Reserve object incoming events land on (empty = the first mapped object).
Inbound statusStatus used to create a new inbound booking.
Allow booking updateYes/No — let inbound changes also touch bookings not created through this integration.
Ignore validation errors on updateYes/No — apply inbound changes even if validation would normally reject them.

2.5 Activate

Save and set the integration to active. Confirm the connection on the test/diagnostics screen and verify a watch channel (webhook) was created for the inbound calendar.

The integration works from a dedicated Google account: prefer a separate service account (not a personal employee account), so the integration does not break when someone leaves and all calendar actions are attributable.
Unlike Outlook, Google Calendar has no app-only / room mailbox mode. You connect resources (rooms) by mapping their Google calendar to an i-Reserve object in the object-calendar mapping.