Instructie
Beheer > Integraties > Google Calendar

De Google Calendar-koppeling vereist configuratie aan twee kanten: eerst een OAuth-client in Google Cloud, daarna de koppeling zelf in i-Reserve. Dit artikel beschrijft beide kanten in volgorde. De Google Cloud-stappen staan los van i-Reserve en worden in de Google Cloud Console uitgevoerd.

1. Aan de Google Cloud-kant

1.1 Project en API

  1. Open de Google Cloud Console (console.cloud.google.com) en maak of kies een project.
  2. Ga naar APIs & Services → Library, zoek Google Calendar API en klik Enable.

1.2 OAuth consent screen

  1. Ga naar APIs & Services → OAuth consent screen.
  2. Kies het gebruikerstype: Internal (alleen eigen Workspace) of External.
  3. Vul app-naam, support-e-mail en eventueel logo in.
  4. Voeg de scopes toe: .../auth/calendar.readonly en .../auth/calendar.events.
  5. Bij External in testmodus: voeg de in te loggen gebruiker toe als test user.

1.3 OAuth-client (credentials)

  1. Ga naar APIs & Services → Credentials → Create credentials → OAuth client ID.
  2. Application type: Web application.
  3. Voeg bij Authorized redirect URIs de redirect-URI toe die i-Reserve toont, doorgaans {base_url}/integrations/redirect/{int_id}.
  4. Noteer de Client ID en het Client secret.

2. Aan de i-Reserve-kant

Ga naar Beheer → Integraties en voeg een Google Calendar-koppeling toe (of open een bestaande). De koppeling heeft een authenticatie-scherm en een configuratie-scherm.

2.1 Authenticatie-scherm

VeldWat in te vullen
Client IDDe OAuth client-ID uit Google Cloud.
Client secretHet bijbehorende client-secret.
Return urlDe redirect-URI. Gebruik exact de waarde die i-Reserve toont en registreer diezelfde URI in de Google-OAuth-client.

Doorloop daarna de twee knoppen in volgorde:

  1. Stap 1: toestemming — opent het Google consent-scherm. Log in met de gewenste Google-gebruiker en keur de gevraagde agenda-permissies goed.
  2. Stap 2: verbinden met Google Calendar — wisselt de toestemming in voor de opgeslagen tokens (access + refresh). Hierna is de verbinding live en haalt i-Reserve de beschikbare agenda's op.

2.2 Configuratie-scherm — outbound (afspraken vanuit i-Reserve)

VeldWat in te vullen
Veld voor i-Reserve event-idHet boekingsveld dat de Google event-id bewaart (de koppeling boeking ↔ afspraak). Default external_id.
TemplateDe e-mail-/booking-template waarmee titel en omschrijving van de afspraak worden opgebouwd.
Google Meet-link aanmakenJa/Nee — maak een Google Meet-vergadering bij de afspraak.
Veld voor Meet-linkBoekingsveld om de Meet join-URL op te slaan (als bovenstaande Ja is).
Herinneringen (popup / e-mail)Aantal minuten voor aanvang voor een popup- en/of e-mailherinnering (0–1440; 0 = uit).
Klantgegevens gebruikenJa/Nee — voeg de klant als deelnemer toe.
Aanmaken op statusDe boekingsstatus(sen) waarop een afspraak in Google wordt aangemaakt.
Verwijderen op statusDe boekingsstatus(sen) waarop de Google-afspraak wordt verwijderd.

2.3 Object → agenda-mapping

Koppel per i-Reserve-object de juiste Google-agenda (calendar-id). Een regel met wildcard * dient als standaard-agenda voor objecten zonder eigen regel. Deze mapping bepaalt naar welke agenda outbound-afspraken gaan en welke agenda inbound wordt gevolgd.

2.4 Configuratie-scherm — inbound (afspraken vanuit Google)

VeldWat in te vullen
Inbound objectHet i-Reserve-object waarop binnenkomende afspraken landen (leeg = het eerste gekoppelde object).
Inbound statusStatus waarmee een nieuwe inbound-boeking wordt aangemaakt.
Toestaan boeking-updateJa/Nee — sta toe dat inbound-wijzigingen ook boekingen raken die niet via deze koppeling zijn aangemaakt.
Negeer validatiefouten bij updateJa/Nee — pas inbound-wijzigingen toe ook als validatie ze normaal zou weigeren.

2.5 Activeren

Sla op en zet de koppeling op actief. Bevestig de verbinding op het test-/diagnosescherm en controleer dat er een watch-channel (webhook) is aangemaakt voor de inbound-agenda.

De koppeling werkt vanuit een dedicated Google-account: gebruik bij voorkeur een aparte serviceaccount (geen persoonlijk medewerkersaccount), zodat de koppeling niet breekt als iemand vertrekt en alle agenda-acties herleidbaar zijn.
Anders dan Outlook kent Google Calendar geen app-only / zaal-mailbox-modus. Resources (zalen) koppel je door hun Google-agenda in de object-agenda-mapping aan een i-Reserve-object te koppelen.