Skip to content

API reference

Link meeting calendar event

meetings.LinkMeetingCalendarEventWriteMember delegation

Link a recorded meeting to its calendar event, or pass event_id: null to unlink it. Only the meeting host can change the link; an event with another recording cannot be reused.

POST/v1/operations/meetings.LinkMeetingCalendarEvent
On this page

Access & visibility

Allow meetings.LinkMeetingCalendarEvent on your API key. Resource write permissions: core:Meeting, core:MeetingNote.

Acting member required. Send Brigg-Act-As with an approved member account ID. The key supplies permissions; the member selects whose data is used.

The selected member must be active and approved by the credential. This selects whose private data is used; the credential supplies permissions. Private ownership and project boundaries still apply.

Set up authentication · Choose permissions

Request fields

Send a JSON object with the following fields. Required fields must be included; omit optional fields you do not need.

idstringRequired

Recorded Meeting id from ListMeetings. The acting member must be its host.

At least 1 character. At most 128 characters.

event_idstring or nullRequired

Brigg CalendarEvent id visible to this same member, from ListCalendarEvents. This is neither the meeting ID nor the provider's event ID. Null explicitly unlinks.

Linking also reconciles meeting details

Choose the recording from List meetings and a calendar event visible to the same host from List calendar events. Linking updates the meeting title and invitation details from that event and resolves its attendee contacts. It does not change the recording's visibility or create or edit the provider's calendar event.

If the event already has a prepared meeting without a recording, Brigg merges eligible preparation and the acting member's note where the recording has none, then removes the prepared meeting. Existing recording content is not overwritten by that preparation, and private preparation is not made workspace-visible. An event with another recording is refused.

To unlink, send event_id=null. This removes the calendar association and invitation UID, but keeps the recording, its content and detected conference URL; it does not undo an earlier merge. Read Get meeting after either action.

Response

Returns 200 OK with a JSON body.

okbooleanRequired

Whether the action completed successfully.

meeting_idstringRequired

The request's id; the recording keeps this identity.

calendar_event_idstring or nullRequired

The linked event_id, or null after unlinking.

absorbed_meeting_idstring or nullRequired

ID of a prepared, unrecorded meeting merged into this recording and removed, or null when none was merged. Stop using an absorbed ID; meeting_id is the surviving record.

Errors & retries

Set BRIGG_REQUEST_ID once for each logical action. The samples send it as Idempotency-Key. Reuse the same value and body on retries, including after a timeout; a missing response does not prove the action failed.

For rate limits, follow the server’s retry guidance and back off. See HTTP errors and safe retries and limits.

HTTP status Code What to do
400 invalid_json Send a JSON object with Content-Type: application/json.
400 invalid_input Check the request fields and types. Supply a stable Idempotency-Key containing 1–200 characters.
401 invalid_key The workspace API key is missing, invalid or revoked.
403 forbidden Check the key’s operation and resource grants. Supply Brigg-Act-As with a member authorized by the key’s delegation grant. The selected member must be active and approved by the credential. This selects whose private data is used; the credential supplies permissions. Private ownership and project boundaries still apply.
404 not_found The requested operation or resource is not available to this credential.
429 rate_limited Wait for Retry-After before retrying. Reuse the original Idempotency-Key.
403 not_host Delegate to the host of the selected recording; knowing its ID or being an administrator does not replace this host check.
404 meeting_not_found Select a visible Meeting from ListMeetings.
404 event_not_found Select a Brigg CalendarEvent visible to the same acting member, not a provider event ID.
409 event_taken The calendar event already has another recording. Choose another event or review the existing recording; an unrecorded prepared meeting can instead be absorbed.

Next steps

Download OpenAPI · Versioning & retirement

JSON schemas

Use the complete schemas for validation or client generation.

Full request JSON schema
{
  "type": "object",
  "properties": {
    "id": {
      "type": "string",
      "minLength": 1,
      "maxLength": 128,
      "description": "Recorded Meeting id from ListMeetings. The acting member must be its host."
    },
    "event_id": {
      "anyOf": [
        {
          "type": "string",
          "minLength": 1,
          "description": "Brigg CalendarEvent id visible to this same member, from ListCalendarEvents. This is neither the meeting ID nor the provider's event ID. Null explicitly unlinks."
        },
        {
          "type": "null",
          "description": "Brigg CalendarEvent id visible to this same member, from ListCalendarEvents. This is neither the meeting ID nor the provider's event ID. Null explicitly unlinks."
        }
      ],
      "description": "Brigg CalendarEvent id visible to this same member, from ListCalendarEvents. This is neither the meeting ID nor the provider's event ID. Null explicitly unlinks."
    }
  },
  "required": [
    "id",
    "event_id"
  ],
  "additionalProperties": false,
  "examples": [
    {
      "id": "e_meeting_kickoff",
      "event_id": "e_calendar_kickoff"
    }
  ]
}
Full response JSON schema
{
  "type": "object",
  "properties": {
    "ok": {
      "type": "boolean",
      "description": "Whether the action completed successfully."
    },
    "meeting_id": {
      "type": "string",
      "description": "The request's id; the recording keeps this identity."
    },
    "calendar_event_id": {
      "type": [
        "string",
        "null"
      ],
      "description": "The linked event_id, or null after unlinking."
    },
    "absorbed_meeting_id": {
      "type": [
        "string",
        "null"
      ],
      "description": "ID of a prepared, unrecorded meeting merged into this recording and removed, or null when none was merged. Stop using an absorbed ID; meeting_id is the surviving record."
    }
  },
  "required": [
    "ok",
    "meeting_id",
    "calendar_event_id",
    "absorbed_meeting_id"
  ],
  "additionalProperties": false,
  "examples": [
    {
      "ok": true,
      "meeting_id": "e_meeting_kickoff",
      "calendar_event_id": "e_calendar_kickoff",
      "absorbed_meeting_id": null
    }
  ]
}

Search by operation name or what you want to build.

Use arrow keys to browse. Enter opens a result.