---
title: "Integrations - Google Meet (meeting bot)"
url: "https://docs.unified.to/integrations/googlemeetmeetingbot"
description: "Build Google Meet (meeting bot) integrations faster with our Unified API — Calendar & Meetings data, OAuth2, real-time sync."
date: "2026-11-10T01:16:02.721Z"
updated: "2026-11-10T01:16:02.721Z"
---

# Google Meet (meeting bot) integration

> What this integration supports through the Unified.to API, by object. Live data: `GET https://api.unified.to/unified/integration?type=googlemeetmeetingbot` with your workspace API key (or Core MCP `list_unified_integrations` with `type: "googlemeetmeetingbot"`). All integrations: https://docs.unified.to/integrations.md

## Overview

- **Type:** `googlemeetmeetingbot`
- **Categories:** [Calendar & Meetings](https://docs.unified.to/calendar/overview.md), [Passthrough](https://docs.unified.to/passthrough/overview.md)
- **Website:** https://google.com
- **Vendor API docs:** https://developers.google.com/meet/api/reference/rest/v2/conferenceRecords/list
- **Launched:** 2026-11-07

## How end users connect

- **OAuth2** authorization flow. Register your own OAuth2 app with the vendor and add its credentials to the integration.

## OAuth2 scopes

Pass Unified scopes in `scopes=` on the authorization URL; each one requests these vendor scopes. Request only what you need.

| Unified scope | Vendor scopes |
| --- | --- |
| `calendar_bot_read` | `https://www.googleapis.com/auth/meetings.space.readonly` |
| `calendar_bot_write` | `https://www.googleapis.com/auth/meetings.space.readonly`, `https://www.googleapis.com/auth/calendar.events.readonly` |
| `calendar_botevent_read` | `openid`, `https://www.googleapis.com/auth/meetings.space.readonly` |
| `calendar_busy_read` | `openid`, `profile`, `email`, `https://www.googleapis.com/auth/calendar.freebusy`, `https://www.googleapis.com/auth/calendar.events.freebusy` |
| `calendar_calendar_read` | `openid`, `profile`, `email`, `https://www.googleapis.com/auth/calendar.readonly` |
| `calendar_calendar_write` | `openid`, `profile`, `email`, `https://www.googleapis.com/auth/calendar` |
| `calendar_event_read` | `openid`, `profile`, `email`, `https://www.googleapis.com/auth/calendar.events.readonly` |
| `calendar_event_write` | `openid`, `profile`, `email`, `https://www.googleapis.com/auth/calendar.events` |
| `calendar_recording_read` | `https://www.googleapis.com/auth/meetings.space.readonly` |

## Supported objects

| Object | Methods | Webhooks |
| --- | --- | --- |
| [calendar_bot](#calendar_bot) | list, get, create, update, remove | none |
| [calendar_botevent](#calendar_botevent) | none | created |
| [calendar_busy](#calendar_busy) | list | none |
| [calendar_calendar](#calendar_calendar) | list, get, create, remove | created, updated, deleted |
| [calendar_event](#calendar_event) | list, get, create, update, remove | created, updated, deleted |
| [calendar_recording](#calendar_recording) | list, get | created |
| [passthrough](#passthrough) | none | none |

Values below come from the integration's support data. "Required list filters" must be sent on list calls; "Required on create" fields must be sent when creating. Webhook events are `native` (pushed by the vendor) or `virtual` (polled by Unified.to). Anything not listed is not supported; an unsupported method returns `501`.

### calendar_bot

- **Methods:** `list`, `get`, `create`, `update`, `remove`
- **Webhooks:** none
- **List filters:** `list_event_id`, `list_limit`, `list_offset`, `list_status`
- **Readable fields:** `created_at`, `ended_at`, `event_id`, `id`, `meeting_metadata`, `meeting_url`, `name`, `participants`, `recording_id`, `started_at`, `status`, `status_changes`, `updated_at`
- **Writable fields:** `event_id`, `meeting_url`, `name`
- **Model:** https://docs.unified.to/calendar/bot/model.md

### calendar_botevent

- **Methods:** none
- **Webhooks:** `created` (native)
- **Readable fields:** `bot_id`, `created_at`, `id`, `participant`, `status_change`, `transcript`, `type`
- **Writable fields:** none
- **Vendor objects:** `participant`, `participant_session`, `transcript_entry`
- **Model:** https://docs.unified.to/calendar/botevent/model.md

### calendar_busy

- **Methods:** `list`
- **Webhooks:** none
- **List filters:** `list_calendar_id`, `list_end_lt`, `list_room_id`, `list_start_gte`
- **Readable fields:** `end_at`, `start_at`
- **Writable fields:** none
- **Vendor objects:** `busy`
- **Model:** https://docs.unified.to/calendar/busy/model.md

### calendar_calendar

- **Methods:** `list`, `get`, `create`, `remove`
- **Webhooks:** `created` (native), `updated` (native), `deleted` (native)
- **List filters:** `list_limit`, `list_offset`
- **Readable fields:** `description`, `id`, `is_primary`, `name`, `timezone`
- **Writable fields:** `timezone`
- **Required on create:** `name`
- **Vendor objects:** `calendar`
- **Model:** https://docs.unified.to/calendar/calendar/model.md

### calendar_event

- **Methods:** `list`, `get`, `create`, `update`, `remove`
- **Webhooks:** `created` (virtual, native), `updated` (virtual, native), `deleted` (virtual, native)
- **Virtual webhook filters:** `virtual_webhook_calendar_id`, `virtual_webhook_limit`, `virtual_webhook_updated_gte`
- **List filters:** `list_calendar_id`, `list_end_lt`, `list_expand`, `list_limit`, `list_offset`, `list_query`, `list_room_id`, `list_sort_by_updated_at`, `list_start_gte`, `list_updated_gte`
- **Readable fields:** `attachments`, `attendees`, `calendar_id`, `conference`, `created_at`, `end_at`, `has_conference`, `id`, `is_all_day`, `is_free`, `is_private`, `location`, `notes`, `organizer`, `recurrence`, `recurring_event_id`, `rooms`, `start_at`, `subject`, `timezone`, `updated_at`, `web_url`
- **Writable fields:** `attendees`, `calendar_id`, `conference`, `has_conference`, `is_all_day`, `is_free`, `is_private`, `location`, `notes`, `organizer`, `recurrence`, `rooms`, `send_notifications`, `status`, `subject`, `timezone`
- **Required on create:** `end_at`, `start_at`
- **Vendor objects:** `event`
- **Model:** https://docs.unified.to/calendar/event/model.md

### calendar_recording

- **Methods:** `list`, `get`
- **Webhooks:** `created` (virtual)
- **Virtual webhook filters:** `virtual_webhook_limit`, `virtual_webhook_updated_gte`
- **List filters:** `list_end_lt`, `list_limit`, `list_offset`, `list_start_gte`
- **Readable fields:** `end_at`, `expires_at`, `id`, `media`, `start_at`, `web_url`
- **Slow fields** (skipped unless you request them in `fields`): `web_url`, `media`
- **Writable fields:** none
- **Vendor objects:** `recording`
- **Model:** https://docs.unified.to/calendar/recording/model.md

### passthrough

- **Methods:** none
- **Webhooks:** none
- **Readable fields:** none
- **Writable fields:** none
