|
|
|
# Google Workspace & Google Calendar Integration Guide
|
|
|
|
|
|
|
|
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**.
|
|
|
|
|
|
|
|
## Table of Contents
|
|
|
|
|
|
|
|
1. [What is Google Workspace?](#1-what-is-google-workspace)
|
|
|
|
2. [Creating Meeting Rooms (Resources)](#2-creating-meeting-rooms-resources)
|
|
|
|
3. [Managing Users and Email Addresses](#3-managing-users-and-email-addresses)
|
|
|
|
4. [Setting Up the Service Account](#4-setting-up-the-service-account)
|
|
|
|
5. [Domain-Wide Delegation](#5-domain-wide-delegation)
|
|
|
|
6. [Sharing Resource Calendars](#6-sharing-resource-calendars)
|
|
|
|
7. [Final Checklist](#7-final-checklist)
|
|
|
|
8. [Appendix: Useful Links](#8-appendix-useful-links)
|
|
|
|
|
|
|
|
## 1. What is Google Workspace?
|
|
|
|
|
|
|
|
**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).
|
|
|
|
|
|
|
|
## 2. Creating Meeting Rooms (Resources)
|
|
|
|
|
|
|
|
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.
|
|
|
|
|
|
|
|
### 2.1 Steps to Create Room Resources
|
|
|
|
|
|
|
|
1. Log in to [Google Admin Console](https://admin.google.com) as a **Super Administrator**.
|
|
|
|
|
|
|
|
2. Go to:
|
|
|
|
**Directory** > **Buildings and Resources**
|
|
|
|
|
|
|
|
3. (Optional) Create a Building:
|
|
|
|
- Click **Manage buildings**
|
|
|
|
- Click **Add building**
|
|
|
|
- Fill out name, address, and floor details
|
|
|
|
|
|
|
|
4. 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., `room-a@yourdomain.com`).
|
|
|
|
|
|
|
|
## 3. Managing Users and Email Addresses
|
|
|
|
|
|
|
|
Users who access the booking system must be Google Workspace users.
|
|
|
|
|
|
|
|
### 3.1 Adding Users
|
|
|
|
|
|
|
|
1. Go to:
|
|
|
|
**Admin Console** > **Directory** > **Users**
|
|
|
|
|
|
|
|
2. Click **Add new user**
|
|
|
|
|
|
|
|
3. Fill out:
|
|
|
|
- Name
|
|
|
|
- Email (e.g., `jane.doe@yourcompany.com`)
|
|
|
|
- Password and license
|
|
|
|
|
|
|
|
All users must exist in the directory to receive calendar events and booking invitations.
|
|
|
|
|
|
|
|
## 4. Setting Up the Service Account
|
|
|
|
|
|
|
|
To interact with Google Calendar via API, a **service account** is required.
|
|
|
|
|
|
|
|
### 4.1 Create a Google Cloud Project
|
|
|
|
|
|
|
|
1. Go to [Google Cloud Console](https://console.cloud.google.com/)
|
|
|
|
2. Click project selector > **New Project**
|
|
|
|
3. Name the project and create it
|
|
|
|
|
|
|
|
### 4.2 Enable Google Calendar API
|
|
|
|
|
|
|
|
1. Go to **APIs & Services** > **Library**
|
|
|
|
2. Search "Google Calendar API"
|
|
|
|
3. Click **Enable**
|
|
|
|
|
|
|
|
### 4.3 Create a Service Account
|
|
|
|
|
|
|
|
1. Navigate to:
|
|
|
|
**IAM & Admin** > **Service Accounts**
|
|
|
|
2. Click **Create Service Account**
|
|
|
|
3. Name it (e.g., `calendar-access`)
|
|
|
|
4. Click **Done**
|
|
|
|
|
|
|
|
### 4.4 Generate JSON Key
|
|
|
|
|
|
|
|
1. Open the created service account
|
|
|
|
2. Go to **Keys** > **Add Key** > **Create New Key**
|
|
|
|
3. Select **JSON** and download it
|
|
|
|
4. Store it securely — this is your credential file
|
|
|
|
|
|
|
|
### 4.5 Assign Roles (Cloud Permissions)
|
|
|
|
|
|
|
|
Go to: **IAM & Admin > IAM**
|
|
|
|
|
|
|
|
Grant the following roles to your service account:
|
|
|
|
- `Service Account Token Creator`
|
|
|
|
- `Editor` (or more restrictive roles if applicable)
|
|
|
|
|
|
|
|
## 5. Domain-Wide Delegation
|
|
|
|
|
|
|
|
This enables the service account to impersonate users or resource calendars.
|
|
|
|
|
|
|
|
### 5.1 Enable Delegation on Service Account
|
|
|
|
|
|
|
|
1. Open the service account
|
|
|
|
2. Click **Edit**
|
|
|
|
3. Enable: **Enable Google Workspace Domain-wide Delegation**
|
|
|
|
4. Note down the **Client ID**
|
|
|
|
|
|
|
|
### 5.2 Authorize in Admin Console
|
|
|
|
|
|
|
|
1. Go to:
|
|
|
|
**Security** > **Access and Data Control** > **API Controls**
|
|
|
|
|
|
|
|
2. Click **Manage Domain-Wide Delegation**
|
|
|
|
|
|
|
|
3. Add a new client:
|
|
|
|
- Client ID: *(from step above)*
|
|
|
|
- OAuth Scopes:
|
|
|
|
```
|
|
|
|
https://www.googleapis.com/auth/calendar,
|
|
|
|
https://www.googleapis.com/auth/calendar.readonly
|
|
|
|
```
|
|
|
|
|
|
|
|
## 6. Sharing Resource Calendars
|
|
|
|
|
|
|
|
Each room calendar must grant the service account permission.
|
|
|
|
|
|
|
|
### 6.1 Manual Sharing
|
|
|
|
|
|
|
|
1. Log in to [Google Calendar](https://calendar.google.com) as an admin
|
|
|
|
2. Open the resource calendar (e.g., `room-a@yourdomain.com`)
|
|
|
|
3. Go to **Settings and Sharing**
|
|
|
|
4. Under **Share with specific people**, add:
|
|
|
|
- Service account email (e.g., `calendar-access@yourproject.iam.gserviceaccount.com`)
|
|
|
|
- Permission: **Make changes and manage sharing**
|
|
|
|
|
|
|
|
### 6.2 Programmatic Access
|
|
|
|
|
|
|
|
Optionally, use the [Admin SDK Directory API](https://developers.google.com/admin-sdk/directory) to automate sharing and calendar setup.
|
|
|
|
|
|
|
|
## 7. Final Checklist
|
|
|
|
|
|
|
|
| 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 | ✅ |
|
|
|
|
|
|
|
|
## 8. Appendix: Useful Links
|
|
|
|
|
|
|
|
- [Google Admin Console](https://admin.google.com/)
|
|
|
|
- [Google Calendar API Docs](https://developers.google.com/calendar)
|
|
|
|
- [Google Workspace Domain-wide Delegation](https://developers.google.com/admin-sdk/directory/v1/guides/delegation)
|
|
|
|
- [OAuth 2.0 Scopes for Google APIs](https://developers.google.com/identity/protocols/oauth2/scopes)
|
|
|
|
- [Google Cloud Console](https://console.cloud.google.com/)
|
|
|
|
- [Admin SDK Directory API](https://developers.google.com/admin-sdk/directory)
|
|
|
|
|
|
|
|
**Contact your IT administrator if you encounter issues during this process.**
|
|
|
|
|
|
|
|
## Related Documentation
|
|
|
|
|
|
|
|
For information about calendar integration configuration in the application, see [Configuration Management](Configuration-Management#calendar-integration-configuration).
|
|
|
|
|
|
|
|
For details about calendar subscription management and webhook setup, see [Deployment & Operations](Deployment-and-Operations#calendar-subscription-management). |
|
|
\ Нет новой строки в конце файла |