-
Notifications
You must be signed in to change notification settings - Fork 9
Google Workspace and Calendar Integration
This guide provides comprehensive instructions for external companies that wish to adapt the Meeting Room Booking System to their own organization using Google Workspace and Google Calendar.
- What is Google Workspace?
- Creating Meeting Rooms (Resources)
- Managing Users and Email Addresses
- Setting Up the Service Account
- Domain-Wide Delegation
- Sharing Resource Calendars
- Final Checklist
- Appendix: Useful Links
Google Workspace (formerly G Suite) is a cloud-based productivity platform from Google that includes:
- Gmail
- Google Calendar
- Google Drive
- Google Docs
- Admin Console (for managing users and resources)
To manage calendar resources and use the Calendar API, your organization must have an active Google Workspace subscription (Business Standard or higher recommended).
Meeting rooms should be registered as calendar resources in Google Workspace. This allows them to be managed as separate calendars and used in scheduling logic.
-
Log in to Google Admin Console as a Super Administrator.
-
Go to:
Directory > Buildings and Resources -
(Optional) Create a Building:
- Click Manage buildings
- Click Add building
- Fill out name, address, and floor details
-
Create a Room Resource:
- Go to Resources
- Click Add Resource
- Fill in:
- Name (e.g. "Conference Room A")
- Type: Room
- Capacity: number of attendees
- Features (optional)
- Assign to building/floor
- Click Add Resource
Each room will now have its own email address (e.g., [email protected]).
Users who access the booking system must be Google Workspace users.
-
Go to:
Admin Console > Directory > Users -
Click Add new user
-
Fill out:
- Name
- Email (e.g.,
[email protected]) - Password and license
All users must exist in the directory to receive calendar events and booking invitations.
To interact with Google Calendar via API, a service account is required.
- Go to Google Cloud Console
- Click project selector > New Project
- Name the project and create it
- Go to APIs & Services > Library
- Search "Google Calendar API"
- Click Enable
- Navigate to:
IAM & Admin > Service Accounts - Click Create Service Account
- Name it (e.g.,
calendar-access) - Click Done
- Open the created service account
- Go to Keys > Add Key > Create New Key
- Select JSON and download it
- Store it securely — this is your credential file
Go to: IAM & Admin > IAM
Grant the following roles to your service account:
Service Account Token Creator-
Editor(or more restrictive roles if applicable)
This enables the service account to impersonate users or resource calendars.
- Open the service account
- Click Edit
- Enable: Enable Google Workspace Domain-wide Delegation
- Note down the Client ID
-
Go to:
Security > Access and Data Control > API Controls -
Click Manage Domain-Wide Delegation
-
Add a new client:
- Client ID: (from step above)
- OAuth Scopes:
https://www.googleapis.com/auth/calendar, https://www.googleapis.com/auth/calendar.readonly
Each room calendar must grant the service account permission.
- Log in to Google Calendar as an admin
- Open the resource calendar (e.g.,
[email protected]) - Go to Settings and Sharing
- Under Share with specific people, add:
- Service account email (e.g.,
[email protected]) - Permission: Make changes and manage sharing
- Service account email (e.g.,
Optionally, use the Admin SDK Directory API to automate sharing and calendar setup.
| Task | Complete? |
|---|---|
| Google Workspace active | ✅ |
| Admin account created | ✅ |
| Meeting rooms created as resources | ✅ |
| Users added in directory | ✅ |
| Google Cloud project created | ✅ |
| Calendar API enabled | ✅ |
| Service account created and JSON key downloaded | ✅ |
| Domain-wide delegation enabled | ✅ |
| OAuth scopes configured | ✅ |
| Resource calendars shared with service account | ✅ |
- Google Admin Console
- Google Calendar API Docs
- Google Workspace Domain-wide Delegation
- OAuth 2.0 Scopes for Google APIs
- Google Cloud Console
- Admin SDK Directory API
Contact your IT administrator if you encounter issues during this process.
For information about calendar integration configuration in the application, see Configuration Management.
For details about calendar subscription management and webhook setup, see Deployment & Operations.