The Google Meet connector lets your AI agent act in each user's Google Meet account. Each user signs in to Google Meet once, and Scalekit stores and refreshes their tokens, so your agent never handles credentials. It comes with 16 tools.
- Tools
- 16
- What they doRead · write · destructive
- 13 · 2 · 113 read2 write1 destructive
- Users sign in with
- OAuth
- OAuth app
- Your own Google app
What you can do
- Create meeting spaces: set up new Meet spaces, update their access settings, and end active conferences
- Review past meetings: list conference records by space, meeting code, or time, and see who attended and when
- Read transcripts: fetch meeting transcripts and speaker-by-speaker entries with text and timestamps
- Find recordings and notes: locate meeting recordings in Google Drive and Gemini smart notes in Google Docs
Setup
Install the SDK
Terminal window npm install @scalekit-sdk/node dotenvTerminal window pip install scalekit-sdk-python python-dotenvSet your credentials
Add your Scalekit credentials to your
.envfile. Find values in app.scalekit.com > Developers > API Credentials..env SCALEKIT_ENVIRONMENT_URL=<your-environment-url>SCALEKIT_CLIENT_ID=<your-client-id>SCALEKIT_CLIENT_SECRET=<your-client-secret>Create the Google Meet connection
In AgentKit > Connections, create a Google Meet connection and copy its redirect URI. The name you give it is the
connection_nameyour code passes. See Configure connections.Register a Google OAuth app
Google Meet connections use your own OAuth app. Register one with Google and add the redirect URI you copied.
Then enter the app's Client ID and Client Secret on the Google Meet connection.
Console steps with screenshots
Register your Scalekit environment with the Google Meet connector so Scalekit handles the authentication flow and token lifecycle for you. The connection name you create will be used to identify and invoke the connection programmatically. Then complete the configuration in your application as follows:
-
Set up auth redirects
-
In Scalekit dashboard, go to AgentKit > Connections > Create Connection. Find Google Meet and click Create. Click Use your own credentials and copy the redirect URI. It looks like
https://<SCALEKIT_ENVIRONMENT_URL>/sso/v1/oauth/<CONNECTION_ID>/callback.
-
Navigate to Google Cloud Console → APIs & Services → Credentials. Select + Create Credentials, then OAuth client ID. Choose Web application from the Application type menu.

-
Under Authorized redirect URIs, click + Add URI, paste the redirect URI, and click Create.

-
-
Enable the Google Meet API
- In Google Cloud Console, go to APIs & Services → Library. Search for “Google Meet API” and click Enable.
-
Get client credentials
- Google provides your Client ID and Client Secret after you create the OAuth client ID in step 1.
-
Add credentials in Scalekit
-
In Scalekit dashboard, go to AgentKit > Connections and open the connection you created.
-
Enter your credentials:
- Client ID (from above)
- Client Secret (from above)
- Permissions (scopes — see Google API Scopes reference)

-
Click Save.
-
-
Authorize a user and make your first call
quickstart.mts import { ScalekitClient } from '@scalekit-sdk/node'import 'dotenv/config'import { createInterface } from 'node:readline/promises'const scalekit = new ScalekitClient(process.env.SCALEKIT_ENVIRONMENT_URL,process.env.SCALEKIT_CLIENT_ID,process.env.SCALEKIT_CLIENT_SECRET,)const actions = scalekit.actionsconst connector = 'googlemeet'const identifier = 'user_123'// Generate an authorization link for the userconst { link } = await actions.getAuthorizationLink({ connectionName: connector, identifier })console.log('Authorize Google Meet:', link)const rl = createInterface({ input: process.stdin, output: process.stdout })await rl.question('Press Enter after authorizing...')rl.close()// Make your first callconst result = await actions.executeTool({connector,identifier,toolName: 'googlemeet_list_conference_records',toolInput: {},})console.log(result)Terminal window npx tsx quickstart.mtsquickstart.py import osfrom scalekit import ScalekitClientfrom dotenv import load_dotenvload_dotenv()scalekit_client = ScalekitClient(env_url=os.getenv("SCALEKIT_ENVIRONMENT_URL"),client_id=os.getenv("SCALEKIT_CLIENT_ID"),client_secret=os.getenv("SCALEKIT_CLIENT_SECRET"),)actions = scalekit_client.actionsconnection_name = "googlemeet"identifier = "user_123"# Generate an authorization link for the userlink_response = actions.get_authorization_link(connection_name=connection_name,identifier=identifier,)print("Authorize Google Meet:", link_response.link)input("Press Enter after authorizing...")# Make your first callresult = actions.execute_tool(tool_input={},tool_name="googlemeet_list_conference_records",connection_name=connection_name,identifier=identifier,)print(result)Terminal window python quickstart.pyEach user signs in once. See Authorize a user for the full flow and statuses.
Tools
Pass the exact name toexecute_toolgooglemeet_get_conference_recordRetrieve details of a single Google Meet conference record by its resource name (e.g., 'conferenceRecords/abc123'), including its start/end time and associated space.Read-onlyGet Conference Record
Retrieve details of a single Google Meet conference record by its resource name (e.g., 'conferenceRecords/abc123'), including its start/end time and associated space. Uses OAuth credentials.
Inputs
conference_record_namestringrequired- Resource name of the conference record to retrieve (e.g., 'conferenceRecords/abc123def456')
googlemeet_get_meet_spaceRetrieve details of a Google Meet meeting space by its resource name (e.g., 'spaces/abc123'), including its meeting URI and configuration.Read-onlyGet Meet Space
Retrieve details of a Google Meet meeting space by its resource name (e.g., 'spaces/abc123'), including its meeting URI and configuration. Uses OAuth credentials.
Inputs
space_namestringrequired- Resource name of the Meet space to retrieve (e.g., 'spaces/abc123').
Also accepts
schema_versionandtool_versionto pin a version.googlemeet_get_participantRetrieve details of a single Google Meet conference participant by their resource name (signed-in user, anonymous user, or phone user).Read-onlyGet Meet Participant
Retrieve details of a single Google Meet conference participant by their resource name (signed-in user, anonymous user, or phone user). Uses OAuth credentials.
Inputs
participant_namestringrequired- Resource name of the participant to retrieve (e.g., 'conferenceRecords/abc123def456/participants/xyz789')
googlemeet_get_recordingRetrieve details of a single Google Meet recording by its resource name, including its Google Drive export location.Read-onlyGet Meet Recording
Retrieve details of a single Google Meet recording by its resource name, including its Google Drive export location. Uses OAuth credentials.
Inputs
recording_namestringrequired- Resource name of the recording to retrieve (e.g., 'conferenceRecords/abc123def456/recordings/xyz789')
googlemeet_get_smart_noteRetrieve details of a single Gemini-generated smart notes session by its resource name, including its state and Google Docs destination.Read-onlyGet Smart Note
Retrieve details of a single Gemini-generated smart notes session by its resource name, including its state and Google Docs destination. Uses OAuth credentials.
Inputs
smart_note_namestringrequired- Resource name of the smart notes session to retrieve (e.g., 'conferenceRecords/abc123def456/smartNotes/xyz789')
googlemeet_get_transcriptRetrieve details of a single Google Meet transcript by its resource name, including its Google Docs export location.Read-onlyGet Meet Transcript
Retrieve details of a single Google Meet transcript by its resource name, including its Google Docs export location. Uses OAuth credentials.
Inputs
transcript_namestringrequired- Resource name of the transcript to retrieve (e.g., 'conferenceRecords/abc123def456/transcripts/xyz789')
googlemeet_list_conference_recordsList past Google Meet conference records, ordered by start time in descending order, optionally filtered by space name, meeting code, or start/end time.Read-onlyList Conference Records
List past Google Meet conference records, ordered by start time in descending order, optionally filtered by space name, meeting code, or start/end time. Uses OAuth credentials.
Inputs
filterstring- Filter expression restricting which conference records are returned, e.g. by space.meeting_code, space.name, start_time, or end_time
page_sizeinteger- Maximum number of conference records to return (default 25, maximum 100)
page_tokenstring- Token for retrieving the next page of results
googlemeet_list_participant_sessionsList the join/leave sessions of a single Google Meet participant.Read-onlyList Participant Sessions
List the join/leave sessions of a single Google Meet participant. A participant can have multiple sessions if they rejoined the same conference. Uses OAuth credentials.
Inputs
participant_namestringrequired- Resource name of the parent participant whose sessions to list (e.g., 'conferenceRecords/abc123def456/participants/xyz789')
filterstring- EBNF filter expression over start_time / end_time, e.g. "end_time IS NULL" to return only sessions still in progress.
page_sizeinteger- Maximum number of participant sessions to return (default 10, maximum 100)
page_tokenstring- Token for retrieving the next page of results
googlemeet_list_participantsList the participants of a Google Meet conference, given the conference record's resource name.Read-onlyList Meet Participants
List the participants of a Google Meet conference, given the conference record's resource name. Uses OAuth credentials.
Inputs
conference_record_namestringrequired- Resource name of the conference record whose participants to list (e.g., 'conferenceRecords/abc123def456')
filterstring- EBNF filter expression over earliest_start_time / latest_end_time, e.g. "latest_end_time IS NULL" to return only participants currently in the conference.
page_sizeinteger- Maximum number of participants to return (default 10, maximum 250)
page_tokenstring- Token for retrieving the next page of results
googlemeet_list_recordingsList the recordings generated during a Google Meet conference, given the conference record's resource name.Read-onlyList Meet Recordings
List the recordings generated during a Google Meet conference, given the conference record's resource name. Uses OAuth credentials.
Inputs
conference_record_namestringrequired- Resource name of the conference record whose recordings to list (e.g., 'conferenceRecords/abc123def456')
page_sizeinteger- Maximum number of recordings to return (default 10, maximum 100)
page_tokenstring- Token for retrieving the next page of results
googlemeet_list_smart_notesList the set of Gemini-generated smart notes sessions from a Google Meet conference, given the conference record's resource name.Read-onlyList Smart Notes
List the set of Gemini-generated smart notes sessions from a Google Meet conference, given the conference record's resource name. Each smart notes session points to a Google Doc destination. Uses OAuth credentials.
Inputs
conference_record_namestringrequired- Resource name of the conference record whose smart notes to list (e.g., 'conferenceRecords/abc123def456')
page_sizeinteger- Maximum number of smart notes to return (default 10, maximum 100)
page_tokenstring- Token for retrieving the next page of results
googlemeet_list_transcript_entriesList the structured transcript entries (one per speaker utterance, with text, speaker, and start/end time) within a Google Meet transcript.Read-onlyList Transcript Entries
List the structured transcript entries (one per speaker utterance, with text, speaker, and start/end time) within a Google Meet transcript. Uses OAuth credentials.
Inputs
transcript_namestringrequired- Resource name of the parent transcript whose entries to list (e.g., 'conferenceRecords/abc123def456/transcripts/xyz789')
page_sizeinteger- Maximum number of transcript entries to return (default 10, maximum 100)
page_tokenstring- Token for retrieving the next page of results
googlemeet_list_transcriptsList the transcripts generated during a Google Meet conference, given the conference record's resource name.Read-onlyList Meet Transcripts
List the transcripts generated during a Google Meet conference, given the conference record's resource name. Uses OAuth credentials.
Inputs
conference_record_namestringrequired- Resource name of the conference record whose transcripts to list (e.g., 'conferenceRecords/abc123def456')
page_sizeinteger- Maximum number of transcripts to return (default 10, maximum 100)
page_tokenstring- Token for retrieving the next page of results
googlemeet_create_meet_spaceCreate a new Google Meet meeting space.WriteCreate Meet Space
Create a new Google Meet meeting space. Optionally configure access type and entry point access restrictions. Returns the meeting URI and space details. Uses OAuth credentials.
Inputs
access_typestring- Access type for the meeting space. One of: 'OPEN' (anyone with link), 'TRUSTED' (domain users), 'RESTRICTED' (only invited participants).one of
OPENTRUSTEDRESTRICTED entry_point_accessstring- Who can use entry points to join. One of: 'ALL' (anyone), 'CREATOR_APP_ONLY' (only the creating app's users).one of
ALLCREATOR_APP_ONLY
Also accepts
schema_versionandtool_versionto pin a version.googlemeet_update_meet_spaceUpdate the configuration of a Google Meet meeting space, such as its access type or entry point access.WriteUpdate Meet Space
Update the configuration of a Google Meet meeting space, such as its access type or entry point access. Only the fields you provide are changed unless an explicit update mask is given. Uses OAuth credentials.
- Idempotent
Inputs
space_namestringrequired- Resource name of the Meet space to update (e.g., 'spaces/abc123')
access_typestring- Access type for the meeting space. One of: 'OPEN' (anyone with link), 'TRUSTED' (domain users), 'RESTRICTED' (only invited participants).one of
OPENTRUSTEDRESTRICTED entry_point_accessstring- Who can use entry points to join. One of: 'ALL' (anyone), 'CREATOR_APP_ONLY' (only the creating app's users).one of
ALLCREATOR_APP_ONLY update_maskstring- Comma-separated field mask restricting which fields are updated (e.g. 'config.accessType'). If omitted, all fields provided in the request are updated.
googlemeet_end_meet_conferenceEnd the active conference in a Google Meet space, disconnecting all participants.DestructiveEnd Meet Conference
End the active conference in a Google Meet space, disconnecting all participants. Requires the resource name of the space (e.g., 'spaces/abc123'). Uses OAuth credentials.
- Idempotent
Inputs
space_namestringrequired- Resource name of the Meet space whose active conference to end (e.g., 'spaces/abc123').
Also accepts
schema_versionandtool_versionto pin a version.
No tools match.
Workflows
Proxy API call
const result = await actions.request({ connectionName: 'googlemeet', identifier: 'user_123', path: '/v2/spaces', method: 'GET',});console.log(result);result = actions.request( connection_name='googlemeet', identifier='user_123', path="/v2/spaces", method="GET")print(result)Execute a tool
const result = await actions.executeTool({ connector: 'googlemeet', identifier: 'user_123', toolName: 'googlemeet_list_conference_records', toolInput: {},});console.log(result);result = actions.execute_tool( connection_name='googlemeet', identifier='user_123', tool_name='googlemeet_list_conference_records', tool_input={},)print(result)Google OAuth consent screen verification
Before you use your own Google OAuth credentials in production, understand what end users see on Google’s consent screen when they authorize a connected account.
| Audience type | Consent screen behavior | When to use |
|---|---|---|
| Internal | Shows your App Name and logo from Branding settings | Only users in your Google Workspace or Cloud Identity organization can authorize the connector |
| External | Shows {env_name}.scalekit.dev until Google verifies your app | Any user with a Google account can authorize the connector |
Why External is required for most AgentKit connectors:
- Internal restricts authorization to users in your Google Workspace or Cloud Identity organization. Users with
@gmail.comor other Google accounts outside your organization cannot complete OAuth. - External is required when end users outside your organization authorize tool access through connected accounts.
- Organization-managed OAuth clients follow the same rules as personal or developer OAuth clients. Switching to an org-owned client does not bypass Google verification.
- Until Google completes verification of your External app, users see
scalekit.devon the consent screen. After verification, your App Name and logo appear.
During development:
- Add Test users under APIs & Services → OAuth consent screen while publishing status is Testing.
- On unverified apps, users can click Advanced → Go to app (unsafe) to proceed during testing.
- Google Workspace admins may need to allowlist your OAuth client.
For Google’s verification requirements and timeline, refer to Google’s OAuth consent screen verification guide.