You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: apps/web/app/(use-page-wrapper)/settings/(settings-layout)/organizations/delegation-credential/delegation-credential.md
+39-15Lines changed: 39 additions & 15 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -2,22 +2,29 @@
2
2
3
3
## Setting up Delegation Credential for Google Calendar API
4
4
5
-
Step 1: Create a Google Cloud Project
5
+
Step 0: Create a Workspace Platform(to be done once for the Cal.com instance, by the Cal.com instance admin)
6
+
7
+
- Create a Workspace Platform through admin interface at <https://app.cal.com/settings/admin/workspace-platforms>
8
+
- Use slug="google". Slug has to be exactly this. This is how we know we need to use Google Calendar and Google Meet.
9
+
- Use "Google" as the name of the workspace platform. Change it as per your liking.
10
+
- Optionally provide description for the workspace platform.
11
+
12
+
Step 1: Create a Google Cloud Project or use existing one(to be done once for the Cal.com instance)
6
13
7
14
Before you can create a service account, you'll need to set up a Google Cloud project.
8
15
9
16
1. Create a Google Cloud Project:
10
-
- Go to the Google Cloud Console
11
-
- Select Create Project
12
-
- Give your project a name and select your billing account (if applicable)
13
-
- Click Create
17
+
1. Go to the Google Cloud Console
18
+
2. Select Create Project
19
+
3. Give your project a name and select your billing account (if applicable)
20
+
4. Click Create
14
21
2. Enable the Google Calendar API:
15
22
1. Go to the Google Cloud Console
16
23
2. Select API & Services → Library
17
24
3. Search for "Google Calendar API"
18
25
4. Click Enable
19
26
20
-
Step 2: Create a Service Account
27
+
Step 2: Create a Service Account in Google Cloud Console(to be done for every organization)
21
28
22
29
A service account is needed to act on behalf of users
23
30
@@ -27,21 +34,38 @@ A service account is needed to act on behalf of users
27
34
- Click on Create Service Account
28
35
- Give your service account a name and description
29
36
- Click Create and Continue(Optional steps can be skipped)
37
+
3. Download the Service Account Key JSON file
38
+
39
+
Step 3: Create Delegation Credential(To Be taken by Cal.com instance admin):
40
+
41
+
- Impersonate the organization owner and go to https://app.cal.com/settings/organizations/delegation-credential to create a Delegation Credential
30
42
31
-
Step 3: To Be taken by Cal.com instance admin:
43
+
- Use domain as "acme.com" if @acme.com is the email address for your Google Workspace
44
+
- Choose Workspace Platform as "Google"
45
+
- Add Service Account Key JSON file(obtained in Step 2)
46
+
- Click on "Create" button
32
47
33
-
- Create a Workspace Platform with slug="google". Slug has to be exactly this. This is how we know we need to use Google Calendar and Google Meet.
48
+
Step 4: Copy the Client ID and OAuth Scope (To Be Taken By Cal.com organization Owner/Admin in Cal.com):
34
49
35
-
Last Step (To Be Taken By Cal.com organization Owner/Admin): Assign Specific API Permissions via OAuth Scopes:
36
-
- Create Delegation Credential with workspace platform "google"
37
-
- User must be a member of the Google Workspace to be able to enable Delegation Credential as there is a validation if the user's calendar can be accessed through the service account
38
-
- Get the Client ID from there
39
-
- Go to your Google Admin Console (admin-google-com)
50
+
- Go to https://app.cal.com/settings/organizations/delegation-credential
51
+
- Copy the Client ID for your Google Workspace domain(e.g. acme.com)
52
+
- Client ID is a number like 123456789012345678901 that
53
+
54
+
Step 5: Add Client ID under Domain-Wide Delegation (To Be taken By Google Workspace Admin):
55
+
56
+
- Go to your Google Admin Console(admin.google.com)
40
57
- Navigate to Security → Access and Data Controls -> API controls -> Manage Domain-Wide Delegation
41
-
- Here, you'll authorize the Client ID(Unique ID) to access the Google Calendar API
42
-
- Add the following API scope for Google Calendar(Full access to Google Calendar)
58
+
- Here, you'll authorize the Client ID to access the Google Calendar API
59
+
- Add the following API scope for Google Calendar(Full access to Google Calendar. We use it to read freebusy time and create/update events in the members' calendars)
43
60
-`https://www.googleapis.com/auth/calendar`
44
61
62
+
Step 6: Enable Delegation Credential(To Be taken By Cal.com organization Owner/Admin in Cal.com):
63
+
64
+
- Prerequisite: The owner/admin must be part of the Google Workspace to enable Delegation Credential
65
+
- Go to https://app.cal.com/settings/organizations/delegation-credential
66
+
- Enable Delegation Credential
67
+
- If you have added the Client ID for correct Google Workspace, the Delegation Credential would be enabled, otherwise you would see an error message, that should help and contact support if you still face issues.
68
+
45
69
## Onboarding Improvements
46
70
47
71
- Just adding a member to the organization would do the following:
0 commit comments