TRMNL Booking for Google Workspace

Organization administrator guideonboarding, authorization, resource inventory, booking, validation, and support procedures

  • Applies to: Google Workspace resource calendars
  • Audience: Google Workspace and Calendar administrators
  • Version: 20 July 2026

About this manual

This manual explains how to prepare Google Workspace buildings and Calendar resources, connect a Workspace administrator to TRMNL Booking, synchronize schedules and metadata, create bookings, and troubleshoot common failures.

Scope: The integration discovers organization resources from the Google Admin SDK and reads or writes their Google Calendar events. It supports conference rooms and non-room resources such as desks and company cars when they are configured as Workspace Calendar resources.

Google Personal calendars use a separate connection. See TRMNL Booking when organization-wide resource discovery is not required.

Onboarding roadmap

  1. Select a stable Google Workspace administrator or integration account.
  2. Confirm its resource-directory and calendar-management privileges.
  3. Create buildings, features, and Calendar resources in Google Admin.
  4. Review resource types, capacity, locations, sharing, and event privacy.
  5. Connect Google Workspace under TRMNL Booking integrations.
  6. Review and authorize the requested Google permissions.
  7. Synchronize resources, select the ones Booking should manage, and inspect imported metadata.
  8. Run discovery, schedule, booking, conflict, cancellation, and privacy tests.
  9. Assign validated resources or collections to TRMNL devices.

1. Purpose and capabilities

The Google Workspace integration connects TRMNL Booking to resource calendars across a Workspace domain. It can:

  • Discover organization Calendar resources.
  • Import conference rooms and other resource types.
  • Import capacity, building, floor, section, feature, and time-zone metadata.
  • Synchronize current and upcoming events.
  • Display live availability on TRMNL devices.
  • Create and cancel bookings directly on a resource calendar.
  • Provide unauthenticated walk-up booking through a QR code.
  • Group resources into list or grid collections.

The connection uses delegated Google OAuth authorization. TRMNL receives tokens after the administrator approves access; it does not receive the administrator's Google password.

2. How the integration works

TRMNL separates resource discovery, event synchronization, and booking writes:

Function Google service Result
Identify connection Google OpenID Connect Records the connected email address and hosted domain
Discover resources Admin SDK Directory API Imports organization resource calendars and metadata
Discover buildings Admin SDK Directory API Resolves building information and resource time zones
Read schedules Google Calendar API Synchronizes events from now through the next 30 days
Create bookings Google Calendar API Inserts an event directly on the selected resource calendar
Cancel bookings Google Calendar API Cancels or deletes the corresponding resource-calendar event

Unlike the Microsoft Exchange integration, Google Workspace does not use a shared organizer mailbox. TRMNL writes directly to the resource calendar using the connected Workspace authorization.

Google remains the source of truth. TRMNL mirrors provider events for display and conflict checks, then writes supported changes back to Google.

3. Supported Google resources

TRMNL imports resources returned by the Google Workspace Directory API.

3.1 Conference rooms

Use resource category CONFERENCE_ROOM for meeting rooms. TRMNL presents these as Room resources.

Examples:

  • Boardroom
  • Training room
  • Huddle space
  • Conference room

3.2 Other resources

Use resource category OTHER and a descriptive resource type for non-room items.

Examples:

Resource Category Resource type Typical capacity
Desk M1 OTHER Desk 1
Company Car A OTHER Car 4
Projector 1 OTHER Equipment 1
Interviewer schedule OTHER People 1

Use consistent type names. Desk, desk, and Hot desk are separate values and can make filtering less predictable.

3.3 Imported metadata

Where supplied by Google, TRMNL imports:

  • Resource name and generated email address.
  • Resource category and type.
  • Capacity.
  • Building ID.
  • Floor name and floor section.
  • Feature names.
  • Resource or building-derived time zone.

Feature names and descriptions are retained with provider metadata but are not rendered on every Booking surface. They are not a substitute for concise resource names that fit on a TRMNL display.

Google reference: Calendar resource fields

4. Google permissions

TRMNL requests delegated OAuth scopes for the connected Workspace account.

Permission Purpose
openid, email, profile Identifies the connected user and Workspace domain
calendar.readonly Reads calendars, schedules, and event details
calendar.events Creates, updates, and cancels calendar events
admin.directory.resource.calendar.readonly Lists buildings and Calendar resources with metadata

OAuth consent grants TRMNL the ability to act within the connected account's existing authority. It does not give the account new Google Workspace administrator privileges.

The connected account must be able to:

  • List organization buildings and Calendar resources.
  • Read events on every resource that will be synchronized.
  • Create and cancel events on every resource that will be booked.

Google exposes Buildings and Resources, Manage Resources, and Manage Calendars as distinct administrative privileges. Use a predefined role or a custom administrator role that provides the access required by your organization. Validate the effective permissions with a pilot resource before broad rollout.

Google reference: Administrator privilege definitions

Use a stable Workspace identity to establish the TRMNL connection. Avoid coupling a permanent integration to a personal administrator who may change roles or leave the organization.

Example:

[email protected]

Recommended properties:

  • Belongs to the Workspace domain being connected.
  • Uses MFA and normal organization sign-in controls.
  • Has only the administrator and calendar privileges required for the integration.
  • Is monitored for suspension, token revocation, and role changes.
  • Has a documented owner and recovery process.
  • Is not deleted while the integration is active.

The account that connects Google Workspace is recorded as the integration administrator. It is not a shared booking organizer and is not added as an attendee to TRMNL-created resource events.

6. Prerequisites

☐ Google Workspace is active for the domain.

☐ Google Calendar is enabled for the connected account.

☐ At least one building and Calendar resource exists, or an inventory is ready for creation.

☐ The connected account can list Workspace Calendar resources.

☐ The connected account can read and edit pilot resource calendars.

☐ The administrator can review and approve the requested OAuth scopes.

☐ Resource event-sharing and privacy settings have been reviewed.

☐ The administrator has access to the TRMNL account that owns the Booking installation.

TRMNL ownership: Organization connection, synchronization, and disconnection are owner-controlled operations.

7. Plan the resource inventory

Prepare the inventory before entering data in Google Admin. Decide:

  • Stable building IDs.
  • Human-readable building names and addresses.
  • Resource names that are concise and unique.
  • Floor and section conventions.
  • Categories and resource types.
  • Capacity values.
  • Features users need when choosing a room.
  • Which resources may be booked through a public QR.
  • Which event details may appear on a physical display.

Example naming scheme:

Field Example
Building ID HQ
Building name Headquarters
Floor 7
Section Marketing
Resource name Huddle Space Alpha
Generated name Headquarters-7-Huddle Space Alpha (5)

Stable IDs matter. Changing them after rollout can affect existing resource references and administrator workflows.

8. Create buildings

Resources can reference a building for location and time-zone context.

  1. Sign in to the Google Admin console.
  2. Open Directory > Buildings and resources.
  3. Open resource management.
  4. Add or manage buildings.
  5. Enter a stable building ID, display name, and address.
  6. Add coordinates when available.
  7. Save the building.

TRMNL uses a resource time zone when Google supplies one. Otherwise it can derive a supported time zone from the building coordinates. If neither is available, the Booking installation or account time zone becomes the fallback.

Google Admin also supports bulk building upload. Use Google's current downloaded template rather than adapting the resource CSV, because the two imports use different columns.

Google reference: Create buildings, features, and Calendar resources

9. Create resource features

Features describe equipment or attributes such as:

  • Video conferencing.
  • Whiteboard.
  • Wheelchair accessibility.
  • Phone conferencing.
  • Dual display.

Create a small, controlled vocabulary before assigning features to resources. Duplicate or nearly identical feature names make search and maintenance harder.

  1. Open Directory > Buildings and resources in Google Admin.
  2. Open resource management.
  3. Manage resource features.
  4. Create each approved feature name.
  5. Assign the relevant features while creating or editing resources.

Google features are managed through the Admin console or Directory API. Do not add unrecognized feature columns to the resource CSV.

10. Create one resource in Google Admin

Create one pilot resource manually before a bulk import.

  1. Open Directory > Buildings and resources.
  2. Open resource management.
  3. Select the intended building.
  4. Add a resource.
  5. Enter its name, category, and type.
  6. Set floor, floor section, and capacity.
  7. Add a user-visible description where useful.
  8. Assign features.
  9. Save the resource.

Google generates a resource email address. TRMNL uses that address as the calendar identifier, so confirm it exists before connecting or synchronizing.

Test the resource in Google Calendar:

  1. Create an event from an authorized Workspace user.
  2. Add the room or resource.
  3. Confirm the event appears on the resource calendar.
  4. Confirm a conflicting interval cannot be booked according to your policy.
  5. Confirm event detail visibility matches your privacy policy.

11. Bulk-create or update resources

Use CSV upload when creating or updating many resources.

  1. Open resource management in Google Admin.
  2. Download Google's current resource template.
  3. Copy the required inventory into that template.
  4. Keep the header names and CSV encoding unchanged.
  5. Upload the CSV.
  6. Review the import result and correct rejected rows.
  7. Export or inspect the resulting resources and preserve their generated IDs and email addresses.

TRMNL includes an example file:

Download the example resource CSV

The example contains conference rooms, desks, and company cars. Replace the example IDs, names, building, and location data with values from your tenant.

11.1 Resource CSV columns

Column Use
Resource Id Stable unique resource identifier. Follow Google's current template instructions when creating resources and retain the assigned value for updates.
Resource Name Human-readable resource name.
Building Id Exact ID of an existing building.
Resource Category CONFERENCE_ROOM or OTHER.
Resource Type Descriptive type for non-room resources, such as Desk or Car.
Floor Name Floor label used in the building.
Capacity Number of seats or users supported.
Floor Section Area, department, wing, or neighborhood.
User Visible Description Description shown to users.
Description Administrator-facing description.

Always compare this list with Google's downloaded template. Google can change the Admin console import format independently of TRMNL documentation.

11.2 Bulk upload rules

  • Building IDs must already exist and match exactly.
  • Resource names should be unique enough for users to distinguish them.
  • Use CONFERENCE_ROOM only for rooms.
  • Use OTHER plus a consistent Resource Type for desks, cars, equipment, or people.
  • Use whole numbers for capacity.
  • Preserve assigned Resource IDs when updating existing rows.
  • Do not reuse an ID for a different physical resource.
  • Upload a small batch first and validate it before importing the complete inventory.
  • Manage resource features separately in Google Admin or through the Directory API.

12. Configure resource access and privacy

The connected account needs enough calendar access to synchronize and write events. Users who book resources natively also need the resource sharing policy intended by your organization.

Google Calendar permission levels include:

  • See only free/busy.
  • See all event details.
  • Make changes.
  • Make changes and manage sharing.

TRMNL can only display the event details returned to the connected account. A restrictive policy may produce a generic busy interval rather than a title or organizer.

Review two concerns separately:

  1. Booking authority: Can the connected account create and cancel events on the resource calendar?
  2. Display privacy: Should titles, organizers, and attendee information be visible on a device or public booking page?

Use a pilot event containing an obviously non-sensitive title to observe the actual result. Do not relax organization-wide privacy settings solely to make display titles appear.

Google reference: Calendar access permissions

13. Connect Google Workspace to TRMNL

  1. Sign in to TRMNL as the Booking installation owner.
  2. Open Apps > Booking > Integrations.
  3. Find Google Workspace.
  4. Select Add company.
  5. Sign in with the prepared Workspace integration account.
  6. Confirm the account belongs to the intended hosted domain.
  7. Review the requested identity, Calendar, event, and resource-directory access.
  8. Approve the connection according to organization policy.
  9. Return to TRMNL and wait for the initial resource synchronization.

TRMNL verifies the Workspace authorization by listing a Calendar resource. If verification fails, the integration is not saved.

If the organization restricts third-party OAuth applications, an administrator may need to mark the TRMNL application as trusted or approve its requested scopes before repeating the connection.

14. Synchronize resources

After connection, open Integrations and select Synchronize next to the Google Workspace account.

Resource synchronization:

  • Lists Workspace Calendar resources.
  • Imports new resources.
  • Updates existing names and metadata.
  • Removes local resources that no longer exist in the connected directory.
  • Fetches resource events after discovery.

Inspect the result under Calendars > Google Workspace Resources. For a pilot resource, confirm:

  • Name.
  • Category or type.
  • Building and floor.
  • Floor section.
  • Capacity.
  • Effective time zone.
  • Last-sync time and sync error.

Removal caution: A non-empty but incomplete directory response can remove resources that are absent from that response. An entirely empty response is retained as a safety measure. Investigate access or provider errors before intentionally removing a large set of resources from Google Admin.

14.1 Select which resources synchronize

Discovering a resource is not the same as using it. Synchronized Calendars on the integration decides which discovered resources reach Booking, and it behaves differently on the first synchronization than on every one after it:

  • First synchronization: every discovered resource is selected automatically.
  • Every later synchronization: newly discovered resources arrive unselected. A room created in Google Admin after the initial connection stays hidden until an administrator selects it.

An unselected resource does not appear under Calendars, cannot be added to a collection or device, and has no public booking link. Select new resources after any Google Admin inventory change:

  1. Open Apps > Booking > Integrations.
  2. Select Edit on the Google Workspace account.
  3. Under Synchronized Calendars, select the resources Booking should manage. Select all and Select none help with long inventories.
  4. Select Save changes.

Deselecting is destructive: clearing a resource removes it from every device display and from every collection that includes it. Those assignments are not restored by selecting the resource again — rebuild them by hand.

15. Synchronize events

TRMNL requests each resource's events from the current time through the next 30 days. Recurring events are expanded into their individual occurrences for that window.

Opening a resource, rendering it on a device, or using its public booking page can refresh stale data. The resource page also offers an explicit refresh action.

Discovery and event access are separate diagnostic stages. A room can appear under Calendars while its schedule fails to synchronize because the connected account can list directory resources but cannot read that resource calendar.

16. Configure displays and collections

After validating a resource:

  1. Open it under Calendars.
  2. Review its current and upcoming events.
  3. Enable or disable Show booking QR code.
  4. Add it to one or more TRMNL devices.
  5. Review the rendered preview.

For an overview of several resources, create a collection and choose the list or grid layout. Collections can include rooms, desks, cars, and other imported resource types.

Related guides:

17. Google booking behavior

TRMNL creates an event directly on the selected Google resource calendar. It does not create a separate organizer event, invite the resource as an attendee, or add the connected administrator as an attendee.

For every requested booking, TRMNL:

  1. Refreshes the resource calendar.
  2. Checks confirmed local events for overlap.
  3. Inserts an event on the Google resource calendar.
  4. Mirrors the returned Google event into TRMNL.

Owner-created bookings can include the submitted title. The public walk-up form uses a generic title and the description Booked with TRMNL.

Cancellation updates the remote Google event before marking the mirrored booking cancelled in TRMNL. If the Google write fails, TRMNL reports an error instead of pretending the remote reservation was removed.

18. Walk-up booking

Walk-up booking requires:

  • Calendar event access in the Google authorization.
  • Write access to the resource calendar.
  • Walk-up booking enabled under Booking settings.
  • The resource is selected under Synchronized Calendars.
  • The resource or collection QR setting enabled.

A visitor can review the next seven days of confirmed bookings, choose a quick or custom duration, and create a booking without signing in. How far ahead they may book is set by Settings > Bookable Until, not by the seven-day calendar view. A collection QR first asks which available resource to book.

Google's resource capacity describes seating and does not automatically make a resource a reservable workspace pool. Google resources retain standard reservable behavior unless a future configuration explicitly marks one as a pool.

The public page does not provide cancellation. A Booking manager or provider administrator must cancel the reservation.

See Walk-up booking.

19. Rollout verification

Use one pilot building and resource before enabling every display.

19.1 Verify native Google behavior

  1. Create a normal Google Calendar event using the pilot resource.
  2. Confirm it appears on the resource calendar.
  3. Confirm expected event details are visible to the connected integration account.
  4. Attempt a conflicting event and confirm Google applies the intended resource policy.

Gate: Correct Google Calendar access and resource configuration before testing TRMNL.

19.2 Verify resource discovery

  1. Select Synchronize in TRMNL.
  2. Confirm the pilot resource is selected under Synchronized Calendars.
  3. Confirm it appears under Google Workspace Resources.
  4. Compare type, building, floor, section, capacity, and time zone with Google Admin.

19.3 Verify schedule synchronization

  1. Open the pilot resource.
  2. Refresh its calendar.
  3. Confirm the native test event appears.
  4. Confirm Last sync has a timestamp and Sync error is empty.
  5. Compare private and non-private event presentation with policy expectations.

19.4 Verify TRMNL booking

Create a future booking named TRMNL integration test and confirm:

  • The event appears directly on the resource calendar.
  • Start and end times use the expected time zone.
  • The connected administrator is not added as an attendee.
  • The event appears in Google Calendar and TRMNL.
  • The TRMNL device reflects it after synchronization.

19.5 Verify conflict and cancellation

  1. Attempt a second TRMNL booking over the same interval.
  2. Confirm the conflict is rejected.
  3. Cancel the original booking through TRMNL.
  4. Confirm the Google event is cancelled or removed.
  5. Confirm the interval becomes available after synchronization.

19.6 Verify walk-up booking

  1. Enable the resource QR.
  2. Scan it from the physical display or print page.
  3. Create a short booking.
  4. Confirm the resource calendar, public schedule, and device agree.
  5. Disable walk-up booking and confirm the public link is no longer available.

20. Troubleshooting

Symptom Likely cause Resolution
Google Workspace connection fails Connected account cannot list resources or OAuth approval is restricted Confirm admin role and trusted-app policy, then reconnect
No resources synchronize Missing Directory resource scope or insufficient administrator privilege Review OAuth grant and Buildings and Resources access
A newly created room is missing Resources discovered after the first synchronization arrive unselected Select it under Synchronized Calendars (see 14.1)
One resource is missing Resource was not created as a Workspace Calendar resource Inspect it under Google Admin resource management
Building metadata is missing Building ID is blank or does not match Correct the resource's Building ID and synchronize
Time zone is wrong Resource and building lack usable time-zone data Add building coordinates or set a Booking time-zone override
Resource appears but events fail Directory listing works but calendar read access does not Grant the connected account access to the resource calendar
Booking fails Calendar event scope or resource write access is missing Reauthorize and verify the account can edit the resource calendar
Booking reports a conflict Another confirmed event overlaps the interval Refresh Google Calendar and choose another time
Event title shows only Busy Calendar visibility or private-event policy hides details Review sharing policy; retain Busy if required for privacy
Removed Google resource still appears Synchronization has not completed Synchronize the Workspace connection again
Resource disappeared after sync It is absent from the directory response, or it was deselected under Synchronized Calendars Verify the Google resource and connected account access; re-select it and rebuild its display and collection assignments
Recently changed role still fails Google permission propagation is incomplete Wait, sign out and in if required, then reconnect or synchronize

20.1 Inspect Google-side access

When a resource is discovered but cannot be read or booked:

  1. Sign in to Google Calendar as the connected integration account.
  2. Locate or subscribe to the resource calendar.
  3. Confirm its events are visible.
  4. Attempt to create and remove a harmless pilot event directly on that resource calendar.
  5. Review the calendar's sharing permissions if either action fails.
  6. Review the connected account's administrator role in Google Admin.

This separates Google configuration failures from TRMNL synchronization failures.

20.2 Inspect OAuth access

If every resource fails after previously working:

  • Confirm the integration account is active.
  • Confirm Calendar remains enabled for the account.
  • Check whether the TRMNL OAuth grant was revoked.
  • Review organization third-party application access controls.
  • Reconnect Google Workspace if scopes or policy changed.

21. Security and privacy

21.1 Stored authorization

TRMNL stores encrypted Google access and refresh tokens so synchronization can continue after the browser session ends. Revoking the Google grant or disconnecting the integration stops future access.

21.2 Least privilege

Use a dedicated role with only the resource-directory and calendar authority required by the rollout. Do not retain unrelated Super Admin privileges solely for TRMNL.

21.3 Event details

Physical displays and public booking pages can expose event titles, organizers, times, and attendee information returned by Google. Test private events and apply the organization's privacy policy before deployment.

Resource and collection QR codes contain unauthenticated tokenized URLs. Anyone with a code or copied URL can use the public booking page while it remains enabled.

Enable Settings > QR Code Security to rotate those URLs daily, so a copied link stops working the next day. Rotation invalidates printed codes as well — see Walk-up booking.

21.5 Audit and review

Periodically review:

  • Connected administrator status.
  • Granted OAuth access.
  • Custom administrator role membership.
  • Resource calendar permissions.
  • Public QR placement.
  • TRMNL owners.

22. Account rotation and offboarding

The Google Workspace connection is attached to the Google identity that completed authorization. Plan rotation before suspending or deleting that account.

  1. Choose and prepare the replacement account.
  2. Confirm its administrator and resource-calendar privileges.
  3. Disconnect the old Google Workspace integration in TRMNL.
  4. Connect the replacement account.
  5. Synchronize resources.
  6. Re-run discovery, event, booking, conflict, and cancellation tests.
  7. Confirm collections and device assignments contain the expected resources.
  8. Revoke the old OAuth grant according to organization policy.
  9. Only then suspend or remove the old account.

Disconnecting removes calendars synchronized through that connection from installations that use it. Because collections refer to those synchronized records, inspect collections after reconnecting.

23. Final administrator sign-off

☐ Connected account and recovery owner are documented.

☐ Requested Google scopes were reviewed and approved.

☐ Resource-directory and calendar privileges were tested.

☐ Buildings and resource metadata synchronized correctly.

☐ Every intended resource is selected under Synchronized Calendars.

☐ Native Google resource booking succeeded.

☐ TRMNL event synchronization succeeded.

☐ TRMNL booking, conflict prevention, and cancellation succeeded.

☐ Walk-up booking was tested if enabled.

☐ Event detail visibility matches privacy policy.

☐ Device and collection displays were reviewed.

☐ Account rotation and offboarding procedures are recorded.

Google documentation

results matching ""

    No results matching ""