Setting up the Google Calendar integration: steps on the Google and i-Reserve side
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
- Open the Google Cloud Console (
console.cloud.google.com) and create or select a project. - Go to APIs & Services → Library, search Google Calendar API and click Enable.
1.2 OAuth consent screen
- Go to APIs & Services → OAuth consent screen.
- Choose the user type: Internal (own Workspace only) or External.
- Fill in app name, support e-mail and optionally a logo.
- Add the scopes:
.../auth/calendar.readonlyand.../auth/calendar.events. - For External in testing mode: add the user who will sign in as a test user.
1.3 OAuth client (credentials)
- Go to APIs & Services → Credentials → Create credentials → OAuth client ID.
- Application type: Web application.
- Under Authorized redirect URIs add the redirect URI i-Reserve shows, typically
{base_url}/integrations/redirect/{int_id}. - 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
| Field | What to enter |
|---|---|
| Client ID | The OAuth client ID from Google Cloud. |
| Client secret | The matching client secret. |
| Return url | The 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:
- Step 1: consent — opens the Google consent screen. Sign in with the desired Google user and approve the requested calendar permissions.
- 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)
| Field | What to enter |
|---|---|
| Field for i-Reserve event id | The booking field that stores the Google event id (the booking ↔ event link). Default external_id. |
| Template | The e-mail/booking template used to build the event title and description. |
| Create Google Meet link | Yes/No — create a Google Meet meeting with the event. |
| Field for Meet link | Booking 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 data | Yes/No — add the customer as attendee. |
| Create on status | The booking status(es) on which an event is created in Google. |
| Delete on status | The 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)
| Field | What to enter |
|---|---|
| Inbound object | The i-Reserve object incoming events land on (empty = the first mapped object). |
| Inbound status | Status used to create a new inbound booking. |
| Allow booking update | Yes/No — let inbound changes also touch bookings not created through this integration. |
| Ignore validation errors on update | Yes/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.





