---
title: "Update Meet Calendar Policy"
method: PATCH
path: "/api/channels/{channel}/accounts/{account_id}/meet-calendar-policy"
tags: ["channels", "channels", "channel-accounts"]
---

# Update Meet Calendar Policy

`PATCH /api/channels/{channel}/accounts/{account_id}/meet-calendar-policy`

## Request

- Base URL: `https://api.dialogbrain.com` (the document declares no server; this is the origin it was published from)
- URL: `https://api.dialogbrain.com/api/channels/{channel}/accounts/{account_id}/meet-calendar-policy`
- Auth: none declared

Update the Meet auto-join policy on a `google_calendar` channel_account.

Persists auto_join_enabled, default_meet_agent_id,
auto_join_transcribe_only and meet_caption_language on
`channel_account.state`. Any field omitted in the request body stays
untouched (the JSONB merge only includes non-None fields). Required
guardrail: when auto-join would be on, either transcribe-only is on or
default_meet_agent_id is set (current value or a new one), so the
calendar scheduler knows what to spawn.

## Path parameters

- `channel` string, required
- `account_id` string, required

## Request body

- MeetCalendarPolicyRequest: Per-channel-account Meet auto-join policy stored on channel_account.state for `google_calendar` accounts. None values are not patched (use a separate field=null intent only when explicitly clearing — for now we treat null as 'leave unchanged'). Fields: auto_join_enabled: when true, the calendar scheduler spawns a meet-bot ~90s before any event with a hangoutLink starts. default_meet_agent_id: which agent the spawned bot acts as. Required when auto_join_enabled flips to true (the scheduler would otherwise have no agent to target), unless auto_join_transcribe_only is on. auto_join_transcribe_only: when true, the spawned bot runs with no agent: it joins, writes the transcript into the conversation and never speaks. default_meet_agent_id is kept but not used. meet_caption_language: ISO-639-1 (en/ru/es/...) — saved here so the UI can surface what the user picked. The actual caption-language switch happens via the bot's saved Google session preference, not per-meeting (live test 2026-05-07 confirmed Meet's CC language is an account-level pref).
  - `auto_join_enabled` boolean, nullable
  - `default_meet_agent_id` integer, nullable
  - `auto_join_transcribe_only` boolean, nullable
  - `meet_caption_language` string, nullable

## Response `200`

Successful Response

- unknown

## Other responses

- `422`: Validation Error

---

[API](https://skmtc.dev/dialogbrain/apis/dialogbrain-v2-api-gateway.md) · [All operations](https://skmtc.dev/dialogbrain/apis/dialogbrain-v2-api-gateway/llms.txt) · [OpenAPI document](https://skmtc.dev/dialogbrain/apis/dialogbrain-v2-api-gateway/revisions/d84e7dc9977d?raw)
