Search meetings and event details available to your Google account. Members can connect personal accounts, or a Google Workspace administrator can configure a central service-account crawl. Both paths keep each person's own view of events separate.
Admin setup uses your organization's Settings → Sources page. Teammates connect from Integrations in the main sidebar.
Choose your setup
| Method | Use it when | What teammates do |
|---|---|---|
| Member accounts | Each person should connect their own Calendar access. No Google Workspace administrator setup is needed. | Connect their own Google Calendar account. |
| Service account | A Workspace administrator can authorize a central crawl with domain-wide delegation. | Join the Studio organization with matching verified email addresses; no personal Calendar connection is needed for this source. |
Central indexing reads calendars as each selected user. An organizer's private event details are never reused as an attendee's copy. Each indexed copy is searchable only by the corresponding user, including when several users can read the same shared calendar.
These are alternative setup paths. When only a central Calendar source is configured, Integrations does not offer a personal Calendar Connect action. Existing member-account sources keep their connection actions.
Connect member accounts
Choose member accounts
An admin selects Settings → Sources → Add source → Google Calendar, then chooses Sync using → Member accounts.
Choose calendars and save
Leave Calendars empty to search each person's primary calendar. To include specific shared calendars, select an Account for browsing and choose calendars, or switch to Calendar IDs and enter their IDs.
Account for browsing only helps you choose calendars. It does not connect your account for Search or grant teammates access.
Choose the date range and any optional filters, then select Set up member accounts. The default covers the previous and next 30 days. These filters apply separately to each connected member's access.
Connect teammates
Each person joins the Studio organization, opens Integrations, selects Connect for Google Calendar, and authorizes the Google account matching their verified Studio email. Its row shows the connection and indexing status. Members use the calendars configured by the admin; they do not enter calendar IDs again.
Admins can request member connections from Settings → Sources → People → Request connections (filter by the integration first). These requests do not grant organization membership. Connecting Gmail or Drive does not replace the Calendar connection. See Connect your account for the shared connection and recovery steps.
primary means the connected or impersonated person's main calendar. A calendar selected from the list is a specific calendar ID, even when it is your main calendar. That same ID applies to every selected user, and only users with access to it can search its events.
Set up a central service account
Open Settings → Sources → Add source and select Google Calendar. This opens Connect Google Calendar service account. To add another connection later, open Google Calendar from the Sources list and select Connect service account.
This requires a Google Workspace customer and a super administrator to authorize domain-wide delegation. Consumer Gmail accounts cannot use this path.
Prepare the service account
In Google Cloud Console, select your project and enable Google Calendar API and Admin SDK API under APIs & Services → Library. Open IAM & Admin → Service Accounts → Create service account and create the account. Google Cloud project roles do not grant Calendar access and are not required for this crawl.
Open the service account's Keys tab, then select Add key → Create new key → JSON → Create. Keep the downloaded key secure; you will add it to Studio. See Google's key creation guide.
Authorize domain-wide delegation
Copy the service account's numeric Client ID from Details → Advanced settings. As a Workspace super administrator, open Security → Access and data control → API controls → Manage Domain Wide Delegation → Add new in the Admin Console.
Enter the Client ID and these exact comma-separated OAuth scopes:
https://www.googleapis.com/auth/calendar.events.readonly,https://www.googleapis.com/auth/admin.directory.user.readonlySelect Authorize and verify both scopes under View details. If you reuse a Drive or Gmail service account, retain its existing delegated scopes and add any missing Calendar scopes. An existing Drive authorization alone does not grant Calendar access. Delegation can take up to 24 hours to propagate; organizations requiring multi-party approval need another super administrator to approve the change. See Google's delegation guide.
The Directory administrator email must be an active Workspace administrator with permission to read users. A super administrator has this permission; a custom administrator role can supply it. This identity lists the directory. Studio obtains a separate read-only Calendar token for each selected user; it does not read everyone's events as the administrator.
Add the credential and choose users
Under Service account, select Add service account or an existing service account. In Add Google Service Account, give the credential a name and paste its JSON key. Back in the source form, enter the Directory administrator email.
Leave Calendar IDs empty for each user's primary calendar. To include shared calendars, enter their IDs, optionally alongside primary. IDs apply to each selected user who can read that calendar; this does not share calendars or expand anyone's Google access. Central setup uses manual IDs because an administrator's calendar picker would not represent every user's calendars.
Choose the Date Range. Under More options, leave Users blank to include all active users in the Workspace customer, including secondary domains, or enter up to 100 primary email addresses separated by commas. Suspended, archived, and guest accounts are excluded. Choose Connect & Sync.
Studio verifies Directory access and selected users, then probes one selected user's primary calendar to check the delegated Calendar permission. Shared-calendar access is checked separately for each user during sync. Teammates join the Studio organization with their matching verified primary Workspace email; they do not connect personal accounts for this source.
Source options
An admin opens Settings → Sources → Google Calendar to open its configuration list. Each row shows Member accounts or Service account beside its sync status. Open a connection's Settings tab to edit its filters, then select Save. Documents shows indexed events and Sync history shows recent runs.
Sync using identifies the configuration's fixed connection method. To replace a central credential, choose another Service account and select Change service account.
| Option | Behavior |
|---|---|
| Calendars / Calendar IDs | Empty defaults to each member's primary calendar. Explicit IDs restrict the source to those calendars. Multiple IDs are comma-separated; combine primary with shared calendar IDs if needed. |
| Directory administrator email | Central indexing only. Required to enumerate Workspace users; it does not limit the source to the administrator's events. |
| Users | Central indexing only. Optional primary email addresses (up to 100); blank includes all active users in the Workspace customer. Each user's event copies remain private to that user. |
| Date Range | Previous and next 30 days by default. Alternatives are the previous 30 days, next 30 days, or 90 days in each direction. The window moves forward on later syncs. |
| Search Query | Optional text filter applied by Google to event titles, descriptions, locations, and organizer or attendee names and emails. Leave empty to include all matching events in the date range. |
| Include Attendees | Yes by default. No omits organizer and attendee identity fields and keeps the attendee count. It does not redact names written into titles or descriptions. |
In the add-source form, More options also contains optional Metadata tags.
What gets indexed
Studio indexes event titles, descriptions, times, locations, and the selected attendee information. All-day events and individual occurrences of recurring meetings are supported. Declined invitations returned by Google stay searchable and are marked Response: declined; hidden invitations are not requested. Results link back to Google Calendar.
Cancelled events, attachment contents, meeting recordings, and transcripts are not indexed. Status entries such as working location, out of office, focus time, and birthdays, and automatically generated reservation events from Gmail are not indexed. Events Google returns only as free/busy blocks, without searchable details, are not indexed. Events outside the selected date window are excluded. Private event details that Google withholds are not available in Search; see Google's calendar sharing rules.
Search schedules syncs hourly. Event edits, cancellations, access changes, inactive or removed users, and events moving outside the date window are reconciled during completed background syncs. Central crawls page through each selected user and resume unfinished work before removing documents no longer listed. Authorization, quota, and provider failures stop the sync rather than treating unread calendars as empty. The first sync may take longer, and results appear as indexing progresses; Search is not a live Calendar read.
Troubleshooting
| What you see | What to do |
|---|---|
| No events | Check the date range, search query, and calendar IDs. Use an empty calendar selection or primary for each person's own calendar. |
| A shared calendar is missing | Confirm the connected Google account can read its events. Selecting a calendar in Studio does not share it in Google. |
| Busy times without event details | Google may expose only availability or hide private details. Ask the calendar owner to review sharing if more access is appropriate. |
| A different email is requested | Choose the Google account matching your verified Studio email. |
| Reconnect | Click Reconnect and complete Google authorization again. Allow pop-ups if the connection tab does not open. |
| Unavailable or needs admin attention | Ask your Studio admin to check source status and the deployment's Google OAuth configuration. |
| Service-account authorization or Directory error | Confirm both delegated scopes, enabled APIs, and the Directory administrator's user-read privilege. Check whether delegation still awaits approval or propagation. |
| Calendar is disabled for a selected user | An active Workspace user may have Calendar turned off. Enable Calendar for them, or set Users to accounts with Calendar enabled. Leaving Users blank includes all active users and can stop sync on a service-access error. |
| User not found or inactive | Use an active primary email in the same Workspace customer. Aliases, external or guest accounts, suspended users, and archived users cannot be selected. |
| A central source has no results for a teammate | Confirm their primary Workspace email matches their verified Studio email, they belong to the Studio organization, and they are included in Users. Check calendar IDs and Sync history. |
Self-hosted operator setup
For an External app in Testing, Google refresh tokens for these scopes expire after seven days. Before production use, configure the appropriate publishing status and complete any required verification; adding test users alone does not make a durable production connection. See Google’s token expiration rules.
The deployment operator configures Google OAuth for member accounts and the member-mode calendar picker. Central service accounts use the separate delegation setup above.
- In Google Cloud Console, select your project. Open APIs & Services → Library, find Google Calendar API, and enable it.
- Open Google Auth platform → Branding and configure the app name and contact details. Under Audience, choose Internal for your Google Workspace organization only, or External for other users. Add test users while an external app is testing. Review Data Access → Add or remove scopes using the current Studio scopes below. See Google's consent and verification guidance.
- Open Google Auth platform → Clients → Create client, choose Web application, and add the URI below under Authorized redirect URIs. Add it to the existing Google client if the instance already uses one. See Google's credential setup.
- Save the client ID and secret as
GOOGLE_CLIENT_IDandGOOGLE_CLIENT_SECRET. SetNEXT_PUBLIC_APP_URLto the same Studio origin used in the callback, then restart Studio. See Integrations & OAuth. If you change an existing deployment's OAuth client or scopes, an organization admin selects Settings → Sources → More → Update sign-in settings, then affected teammates reconnect.
https://<your-studio-domain>/api/auth/oauth2/callback/google-calendarThis Google Cloud example uses one client for all three services. Replace https://studio.example.com with your Studio origin and add only the callbacks for services you enable.
The member-account OAuth connection uses these scopes:
openid
https://www.googleapis.com/auth/userinfo.email
https://www.googleapis.com/auth/userinfo.profile
https://www.googleapis.com/auth/calendarThe central service account uses calendar.events.readonly for event reads and the separate Directory scope listed earlier. Member connections share their OAuth credentials with workflow actions and require the broader calendar scope above. Search does not change calendars or events. See Google's scope descriptions.