Google Meet

ToolByIronHubVersion0.1.0

Google Meet read integration via the Meet REST API v2. Actions: list_conference_records (past conferences, newest first, filterable by start_time, end_time, space.meeting_code, space.name), list_participants, list_recordings and get_recording (recording metadata including the Drive exportUri), list_transcripts and get_transcript (transcript metadata including the Docs destination), list_transcript_entries (the spoken text with speaker attribution). Start from list_conference_records to obtain a conference record name, then pass that name to the other actions; the spoken words live in list_transcript_entries rather than get_transcript. Read-only: the tool creates no meeting spaces, changes no settings, and ends no conferences. Authenticates against meet.googleapis.com with a Google OAuth user token injected by the host as a Bearer header, scoped to meetings.space.readonly.

Install
$ironclaw ironhub install google-meet

Description

Read access to past Google Meet conferences via the Meet REST API v2. Lists conferences, who attended, and the recordings and transcripts they produced, including the spoken text with speaker attribution.

The tool is read-only. It creates no meeting spaces, changes no settings, and ends no conferences.

Actions

ActionMethod + pathPurpose
list_conference_recordsGET /v2/conferenceRecordsPast conferences, newest first
list_participantsGET /v2/{parent}/participantsWho attended a conference
list_recordingsGET /v2/{parent}/recordingsRecording metadata for a conference
get_recordingGET /v2/{name}One recording by resource name
list_transcriptsGET /v2/{parent}/transcriptsTranscript metadata for a conference
get_transcriptGET /v2/{name}One transcript by resource name
list_transcript_entriesGET /v2/{parent}/entriesThe actual spoken text

Start from the conference record

Everything hangs off a conference record. Call list_conference_records first, take the name from a result, and pass it to the other actions. Resource names are used exactly as the API returns them:

{ "action": "list_transcripts", "conference_record": "conferenceRecords/abc123" }
{ "action": "list_transcript_entries",
  "transcript": "conferenceRecords/abc123/transcripts/xyz789" }

conference_record also accepts a bare id for convenience. The nested names must be complete, so a wrong-collection name is rejected rather than silently rewritten.

The text is in the entries, not the transcript

This is the one thing worth knowing before using the tool. get_transcript returns metadata: processing state and a docsDestination pointing at a Google Doc. The words themselves come from list_transcript_entries, one entry per utterance with speaker attribution, which is also what makes them useful for extracting decisions and actions.

Recordings behave the same way. A recording resource is a Drive pointer carrying a driveDestination.exportUri; the MP4 lives in the organiser's Drive and is not downloadable through this API.

Filtering conferences

list_conference_records accepts Google's EBNF filter over start_time, end_time, space.meeting_code and space.name:

{
  "action": "list_conference_records",
  "filter": "start_time>=\"2026-08-01T00:00:00.000Z\" AND start_time<=\"2026-08-08T00:00:00.000Z\""
}

end_time IS NULL selects conferences still in progress. Results are ordered by start time descending, so an unfiltered first page is a reasonable "what happened recently" query.

Auth

Google OAuth with a single read-only scope, meetings.space.readonly. Enable the Meet API in Google Cloud Console, create a Web application OAuth client with redirect URI http://localhost:9876/callback, then:

export GOOGLE_MEET_OAUTH_CLIENT_ID=<client id>
export GOOGLE_MEET_OAUTH_CLIENT_SECRET=<client secret>

and run ironclaw tool auth google-meet. The host manages refresh and injects the token as a Bearer header; the tool never sees it.

This credential is deliberately separate from the first-party Google tools, because those tokens do not carry the Meet scope.

Limits

  • Artifacts only exist if they were enabled. Recording and transcription are per-meeting settings. A conference with neither returns empty lists, and that is not an error.
  • Visibility follows the consenting user. Conference records are scoped to what that user can see. Workspace-wide coverage needs domain-wide delegation, configured in Google Workspace rather than here.
  • Recording media is not retrievable here; follow driveDestination.exportUri with a Drive tool.
  • Transcript entries cap at 10,000 words per entry and are paginated; list_transcript_entries defaults to a page size of 200 because a full meeting is many entries.
  • spaces write methods (create, patch, endActiveConference) are deliberately not exposed.
  • Smart notes (conferenceRecords.smartNotes) are not yet exposed.

Access & Credentials

Credential method

OAuth 2.0 with PKCE

Credential accounts
Google MeetRequired

OAuth 2.0 with PKCE

google_meet_oauth_token

Network & Permissions

Network destinations
meet.googleapis.comoauth2.googleapis.com

Implementation

WIT Interface0.3.0
Source Pathtools/google-meet
Technical tags
WASM toolOAuthHTTP allowlist

Resources

Review implementation and setup instructions before installing.