domainwidedelegation.comGet it set up

Use casesScheduling

Automate room booking with a delegated service account

Book and manage meeting rooms across an organisation automatically, using a service account with domain-wide delegation.

Who it is forIT automation teams managing room allocations or recurring scheduling tasks.
APIsCalendar API, Admin SDK
Typical scopescalendar, admin.directory.resource.calendar

The problem

Manual room booking leads to double-bookings, abandoned reservations, and inconsistent usage, especially across multiple locations or teams. Automation promises consistency, but the Calendar API’s behaviour around resource calendars is not always obvious.

How it works

  1. List all room resources via the Admin SDK.
  2. Impersonate a user with permission to book rooms using the service account.
  3. Attempt to create events on the room calendars, checking for conflicts.
  4. Update or delete events as reservations change, ensuring auditability.

What changes

Room bookings are handled centrally and reliably, freeing staff from chasing availability and reducing scheduling conflicts.

The trap in this one. The Calendar API will silently accept an insert event call even if the resource calendar has not been properly delegated to the impersonated user, but the booking will not actually reserve the room. The event appears on the organiser’s calendar but not in the room’s, leading to invisible failed reservations. Always verify the room resource’s calendarId is correct and the event status is 'confirmed' in both calendars after insertion.

Watch it explained

Google Calendar Room Reservation and Booking System Using Apps Script API” — Mr. Kaiser on YouTube. Third-party video, included because it covers this ground well. We are not affiliated with the channel.

Questions people ask

Do I need to impersonate a real user?

Yes. The service account must impersonate a user who has rights to book the room, or the booking will not be accepted by the resource calendar.

Can I use only the Admin SDK for this?

No, the Admin SDK lists resources but cannot create bookings. You must use the Calendar API for event creation.

Want this built?

This is a pattern we run in production. We will set up the delegation and build this on top of it — $500 per hour, most of it working the same day.

Talk to us Or read the setup guide

Related use cases

Exporting calendar events and capacity domain-wide

How to reliably export all users' primary and secondary Google Calendar events for capacity analysis, with details on avoiding incomplete data and silent API omissions.

Build a real picture of team availability

Read calendars across the domain to answer who is free, who is overloaded and where the week actually went.

Turn a finished meeting into follow-up automatically

Detect that a meeting happened, pull the notes, and draft the follow-up before anyone opens their laptop.