Skip to content

Google Meet

Google Meet

Google Meet is a secure video conferencing platform that integrates with Google Workspace, facilitating remote meetings, screen sharing, and chat. With the integration in SquadOS, your agents can create and manage meeting spaces, end active conferences, list participants, retrieve recordings, and access detailed meeting transcriptions.

This tool uses OAuth 2.0 (OAUTH2) to connect.

You will need to authorize access to your Google account with the necessary scopes for Google Meet.

FieldRequiredDescription
Google accountYesOAuth 2.0 authorization for Google Meet access via Composio.
  1. Go to Tools in the side menu (/admin/tools).
  2. Open the Available tab and search for Google Meet.
  3. Click the card to open the details modal and hit Connect.
  4. You’re taken to the secure connection page hosted by Composio, where you authorize access to your Google account.
  5. Once done, you’re sent back to SquadOS with the account connected and the tool available for your agents. (Connection-flow details in Organization Tools.)

How do I set up custom Google OAuth credentials for Google Meet?

Section titled “How do I set up custom Google OAuth credentials for Google Meet?”

For a step-by-step guide on creating and configuring your own Google OAuth credentials with Composio, see How to create OAuth2 credentials for Google Apps.

Why am I seeing “App is blocked” when connecting Google Meet?

Section titled “Why am I seeing “App is blocked” when connecting Google Meet?”

The OAuth client is requesting scopes that Google hasn’t verified for that client. This usually happens when you add extra scopes beyond the defaults.

Remove the additional scopes from your auth config, or create your own OAuth app and submit the scopes for verification. See How to create OAuth2 credentials for Google Apps.

Why am I getting “Google Meet API has not been used in project” error?

Section titled “Why am I getting “Google Meet API has not been used in project” error?”

When using custom OAuth credentials, the Google Meet API must be enabled in the Google Cloud project that owns those credentials. Enable it in Google Cloud Console under APIs & Services, wait a few minutes, and retry.

Why am I getting “Error 400: invalid_scope”?

Section titled “Why am I getting “Error 400: invalid_scope”?”

The requested scopes are invalid or incorrectly formatted in the authorization URL. Verify your scope values against the Google OAuth scopes docs.

Section titled “Why does the OAuth consent screen show “Composio” instead of my app?”

By default, the consent screen uses Composio’s OAuth app. To show your own app name and logo, create your own OAuth app and set a custom redirect URL.

Why am I getting 401 errors on tool calls?

Section titled “Why am I getting 401 errors on tool calls?”

The user’s access token is no longer valid. Common causes: the user revoked access, changed their password or 2FA, a Workspace admin policy changed, or Google’s refresh token limit (~50 per account) was exceeded. Re-authenticating the user typically resolves this.

Why am I getting “Quota Exhausted” or “rate limit exhausted”?

Section titled “Why am I getting “Quota Exhausted” or “rate limit exhausted”?”

Google enforces per-minute and daily request quotas. If you’re using Composio’s default OAuth app, you share that quota with other users, which can cause limits to be hit faster. Use your own OAuth app credentials to get a dedicated quota, and add exponential backoff and retries to handle transient rate limits.

GOOGLEMEET_CREATE_MEET

Creates a new Google Meet space with optional configuration. Does not attach to any calendar event — calendar linking requires a separate Calendar tool call. Capture meetingUri, meetingCode, and space.name from the response immediately for downstream lookups. Requires meetings.space.created OAuth scope. Returns HTTP 429 under rapid calls; apply exponential backoff. Use when you need a meeting space with specific access controls, moderation, recording, or transcription settings.

NameTypeRequiredDescription
configobjectNoOptional configuration for the meeting space. If not provided, default settings will be used. Key sub-fields: accessType and entryPointAccess default to permissive values — set explicitly when audience or access level is known, as permissive defaults may conflict with organizational policies. Invalid combinations of these fields or moderation settings may be rejected based on domain/account policies. Recording and transcription features require a Workspace edition that supports cloud recording; personal accounts may not support these options.
NameTypeRequiredDescription
datastringYesData from the action execution.
errorstringNoError if any occurred during the execution of the action.
successfulbooleanYesWhether or not the action execution was successful.

GOOGLEMEET_END_ACTIVE_CONFERENCE

Ends an active conference in a Google Meet space. REQUIRES space_name parameter (e.g., spaces/jQCFfuBOdN5z or just jQCFfuBOdN5z). Use when you need to terminate an ongoing conference in a specified space. This operation only succeeds if a conference is actively running in the space. Immediately drops all active participants — obtain explicit user confirmation before calling.

NameTypeRequiredDescription
space_namestringYesResource name of the space in the format spaces/{space} where {space} is a unique, case-sensitive server-generated ID. Example: spaces/jQCFfuBOdN5z. This can be the full resource name including the spaces/ prefix or just the space ID.
NameTypeRequiredDescription
datastringYesData from the action execution.
errorstringNoError if any occurred during the execution of the action.
successfulbooleanYesWhether or not the action execution was successful.

GOOGLEMEET_GET_CONFERENCE_RECORD_BY_NAME

Tool to get a specific conference record by its resource name. Use when you have the conference record ID and need to retrieve detailed information about a single meeting instance.

NameTypeRequiredDescription
namestringYesRequired. Resource name of the conference record. Format: conferenceRecords/{conference_record} where {conference_record} is a unique ID for each instance of a call within a space. Example: conferenceRecords/GLkPdCDLsjSXet2-QH9dDxIPOAIIigIgABgECA.
NameTypeRequiredDescription
datastringYesData from the action execution.
errorstringNoError if any occurred during the execution of the action.
successfulbooleanYesWhether or not the action execution was successful.

GOOGLEMEET_GET_MEET

Retrieve details of a Google Meet space using its unique identifier. Newly created spaces may return incomplete data; retry after 1–3 seconds if needed.

NameTypeRequiredDescription
space_namestringYesThe unique identifier (space ID) for the Google Meet space. Provide only the raw space ID without the spaces/ prefix. Example: mV63iV9-KxoB.
NameTypeRequiredDescription
datastringYesData from the action execution.
errorstringNoError if any occurred during the execution of the action.
successfulbooleanYesWhether or not the action execution was successful.

GOOGLEMEET_GET_PARTICIPANT_SESSION

Retrieves detailed information about a specific participant session from a Google Meet conference record. Returns session details including start time and end time for a single join/leave session. A participant session represents each unique join or leave session when a user joins a conference from a device. If a user joins multiple times from the same device, each join creates a new session. PREREQUISITE: You must first obtain the participant session resource name. Use LIST_PARTICIPANT_SESSIONS with a conference record ID and participant ID to get available sessions and their resource names. The name parameter is REQUIRED and must be in the format: conferenceRecords/{conference_record}/participants/{participant}/participantSessions/{participant_session}.

NameTypeRequiredDescription
namestringYesRequired. Full resource name of the participant session to retrieve. Format: conferenceRecords/{conference_record}/participants/{participant}/participantSessions/{participant_session}. You can obtain this value from the name field returned by the LIST_PARTICIPANT_SESSIONS action.
NameTypeRequiredDescription
datastringYesData from the action execution.
errorstringNoError if any occurred during the execution of the action.
successfulbooleanYesWhether or not the action execution was successful.

GOOGLEMEET_GET_RECORDINGS_BY_CONFERENCE_RECORD_ID

Retrieves recordings from Google Meet for a given conference record ID. Only returns recordings if recording was enabled and permitted by the organizer’s domain policies; a valid conference_record_id does not guarantee recordings exist. After a meeting ends, recordings may take several minutes to process — an empty result may be temporary, not permanent.

NameTypeRequiredDescription
conference_record_idstringYesUnique identifier for the conference record.
NameTypeRequiredDescription
datastringYesData from the action execution.
errorstringNoError if any occurred during the execution of the action.
successfulbooleanYesWhether or not the action execution was successful.

GOOGLEMEET_GET_TRANSCRIPT

Retrieves a specific transcript by its resource name. Returns transcript details including state (STARTED, ENDED, FILE_GENERATED), start/end times, and Google Docs destination. PREREQUISITE: Obtain the transcript resource name first by using GET_TRANSCRIPTS_BY_CONFERENCE_RECORD_ID or construct it from known IDs.

NameTypeRequiredDescription
namestringYesRequired. Resource name of the transcript. Format: conferenceRecords/{conferenceRecord}/transcripts/{transcript}. You can obtain this from the “Get Transcripts by Conference Record ID” action or construct it using known conference record and transcript IDs.
NameTypeRequiredDescription
datastringYesData from the action execution.
errorstringNoError if any occurred during the execution of the action.
successfulbooleanYesWhether or not the action execution was successful.

GOOGLEMEET_GET_TRANSCRIPT_ENTRY

Fetches a single transcript entry by resource name for targeted inspection or incremental processing. Use when you have a specific transcript entry resource name and need to retrieve its details (text, speaker, timestamps, language). PREREQUISITE: Obtain the transcript entry resource name first by using LIST_TRANSCRIPT_ENTRIES or construct it from known IDs. The name parameter is REQUIRED and must follow the format: conferenceRecords/{conferenceRecordId}/transcripts/{transcriptId}/entries/{entryId}.

NameTypeRequiredDescription
namestringYesRequired. Full resource name of the transcript entry. Format: conferenceRecords/{conferenceRecordId}/transcripts/{transcriptId}/entries/{entryId}. You can obtain this from the LIST_TRANSCRIPT_ENTRIES action or construct it using known conference record, transcript, and entry IDs.
NameTypeRequiredDescription
datastringYesData from the action execution.
errorstringNoError if any occurred during the execution of the action.
successfulbooleanYesWhether or not the action execution was successful.

GOOGLEMEET_GET_TRANSCRIPTS_BY_CONFERENCE_RECORD_ID

Retrieves all transcripts for a specific Google Meet conference using its conference_record_id. Transcripts require processing time after a meeting ends — empty results may be transient; retry after a delay before concluding no transcripts exist. Returns results only if transcription was enabled during the meeting and permitted by the organizer’s domain policies.

NameTypeRequiredDescription
page_sizeintegerNoMaximum number of transcripts to return. The service might return fewer than this value. If unspecified, at most 10 transcripts are returned. The maximum value is 100; values above 100 are coerced to 100.
page_tokenstringNoPage token returned from a previous list call, used to retrieve the next page of results.
conference_record_idstringYesUnique identifier of the conference record. This is the ID portion from the conference record resource name (format: conferenceRecords/{id}). You can obtain valid conference record IDs by using the “List Conference Records” action or from the name field in conference record responses. Example ID: kRyYx8b7vNDsLpR1tG_cNjFUQBoBRhHIMoGJAJkBCQ. Do NOT pass the full resource name — only the ID portion after conferenceRecords/.
NameTypeRequiredDescription
datastringYesData from the action execution.
errorstringNoError if any occurred during the execution of the action.
successfulbooleanYesWhether or not the action execution was successful.

GOOGLEMEET_LIST_CONFERENCE_RECORDS

Tool to list conference records. Use when you need to retrieve a list of past conferences, optionally filtering them by criteria like meeting code, space name, or time range.

NameTypeRequiredDescription
filterstringNoOptional. User specified filtering condition in EBNF format. Filterable fields: space.meeting_code, space.name, start_time, end_time. Examples: space.name = "spaces/NAME", space.meeting_code = "abc-mnop-xyz", start_time>="2024-01-01T00:00:00.000Z" AND start_time<="2024-01-02T00:00:00.000Z", end_time IS NULL. Time values must be RFC3339 UTC (e.g., 2024-01-01T00:00:00.000Z); non-UTC timezones or reversed bounds silently omit records. A single space.meeting_code may match multiple records if the code was reused; combine with time filters to isolate the target record.
page_sizeintegerNoMaximum number of conference records to return. The service might return fewer than this value. If unspecified, at most 25 conference records are returned. The maximum value is 100; values above 100 are coerced to 100.
page_tokenstringNoPage token returned from previous List Call. Loop using the returned page_token until no token is returned to retrieve the complete result set.
NameTypeRequiredDescription
datastringYesData from the action execution.
errorstringNoError if any occurred during the execution of the action.
successfulbooleanYesWhether or not the action execution was successful.

GOOGLEMEET_LIST_PARTICIPANTS

Lists the participants in a conference record. By default, ordered by join time descending. Use to retrieve all participants who joined a specific Google Meet conference, with support for filtering active participants (where latest_end_time IS NULL).

NameTypeRequiredDescription
filterstringNoOptional. User-specified filtering condition in EBNF format. Filterable fields: earliest_start_time, latest_end_time. Example: latest_end_time IS NULL returns active participants in the conference.
parentstringYesRequired. Format: conferenceRecords/{conference_record}. The conference record ID can be obtained from the LIST_CONFERENCE_RECORDS action.
page_sizeintegerNoOptional. Maximum number of participants to return. The service might return fewer than this value. If unspecified, at most 100 participants are returned. The maximum value is 250; values above 250 are coerced to 250.
page_tokenstringNoOptional. Page token returned from a previous list call, used to retrieve the next page of results.
NameTypeRequiredDescription
datastringYesData from the action execution.
errorstringNoError if any occurred during the execution of the action.
successfulbooleanYesWhether or not the action execution was successful.

GOOGLEMEET_LIST_PARTICIPANT_SESSIONS

Lists all participant sessions for a specific participant in a Google Meet conference. A participant session represents each unique join or leave session when a user joins a conference from a device. If a user joins multiple times from the same device, each join creates a new session. Returns session details including start time and end time for each session.

NameTypeRequiredDescription
filterstringNoOptional. User-specified filtering condition in EBNF format. Filterable fields include start_time and end_time. Time values must use RFC3339 UTC format (e.g., start_time >= '2024-01-01T00:00:00Z'). Unsupported field names or malformed expressions may silently narrow or drop results rather than raising errors.
page_sizeintegerNoOptional. Maximum number of participant sessions to return. The service might return fewer than this value. If unspecified, at most 100 participant sessions are returned. The maximum value is 250; values above 250 are coerced to 250.
page_tokenstringNoOptional. Page token returned from a previous list call, used to retrieve the next page of results. Iterate using successive page_token values until the response omits page_token to avoid silently missing sessions.
participant_idstringYesRequired. The unique identifier of the participant within the conference. Example: xyz-456.
conference_record_idstringYesRequired. The unique identifier of the conference record. Example: abc-123-def.
NameTypeRequiredDescription
datastringYesData from the action execution.
errorstringNoError if any occurred during the execution of the action.
successfulbooleanYesWhether or not the action execution was successful.

GOOGLEMEET_LIST_RECORDINGS

Tool to list recording resources from a conference record. Use when you need to retrieve recordings from a specific Google Meet conference. Recordings are created when meeting recording is enabled and saved to Google Drive as MP4 files.

NameTypeRequiredDescription
parentstringYesRequired. The conference record to list recordings for. Format: conferenceRecords/{conference_record}.
page_sizeintegerNoMaximum number of recordings to return. The service may return fewer than this value. If unspecified, at most 10 recordings are returned. The maximum value is 100; values above 100 are coerced to 100.
page_tokenstringNoPage token returned from a previous list call. Provide this to retrieve the subsequent page. When paginating, all other parameters provided to the list call must match the call that provided the page token.
NameTypeRequiredDescription
datastringYesData from the action execution.
errorstringNoError if any occurred during the execution of the action.
successfulbooleanYesWhether or not the action execution was successful.

GOOGLEMEET_LIST_TRANSCRIPT_ENTRIES

Tool to list structured transcript entries (speaker/time/text segments) for a specific Google Meet transcript. Use when you need to access the detailed content of a transcript, including individual spoken segments with timestamps and speaker information. Note: The transcript entries returned by the API might not match the transcription in Google Docs due to interleaved speakers or post-generation modifications.

NameTypeRequiredDescription
page_sizeintegerNoMaximum number of transcript entries to return. The service might return fewer than this value. If unspecified, at most 10 entries are returned. The maximum value is 100; values above 100 are coerced to 100.
page_tokenstringNoPage token returned from a previous list call, used to retrieve the next page of results.
transcript_idstringYesThe unique identifier of the transcript within the conference record.
conference_record_idstringYesThe unique identifier of the conference record.
NameTypeRequiredDescription
datastringYesData from the action execution.
errorstringNoError if any occurred during the execution of the action.
successfulbooleanYesWhether or not the action execution was successful.

GOOGLEMEET_UPDATE_SPACE

Updates the settings of an existing Google Meet space. Requires organizer/host privileges and the meetings.space.created OAuth scope. REQUIRED PARAMETER: name (the space identifier, e.g., spaces/jQCFfuBOdN5z). OPTIONAL PARAMETERS: config (new configuration settings to apply) and updateMask (specify which fields to update; if omitted, all provided config fields are updated).

NameTypeRequiredDescription
namestringYesREQUIRED. The unique identifier of the Google Meet space to update. Format: spaces/{space} where {space} is the space ID.
configobjectNoConfiguration settings to update for the meeting space. Provide the fields you want to modify (e.g., accessType, entryPointAccess, moderation settings). Some settings require specific Google Workspace editions and admin policies; unsupported settings may apply silently with no effect.
updateMaskstringNoField mask specifying which fields to update. Comma-separated list of fully qualified field names (e.g., config.accessType,config.entryPointAccess). If not provided, only the fields explicitly set in config will be updated. WARNING: Using "*" will attempt to update ALL config fields, which may cause errors. Recommend specifying only the fields being updated.
NameTypeRequiredDescription
datastringYesData from the action execution.
errorstringNoError if any occurred during the execution of the action.
successfulbooleanYesWhether or not the action execution was successful.