Skip to content

API reference

Update connected calendar event

meetings.UpdateConnectedCalendarEventWriteMember delegation

Propose changing the title or time of an event the acting member organizes on a connected calendar. The member approves the change in Brigg. Supply both start and end when moving it; recurring events are unsupported.

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

Access & visibility

Allow meetings.UpdateConnectedCalendarEvent on your API key.

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.

event_idstringRequired

Brigg CalendarEvent record ID from ListCalendarEvents for this member's connected-provider event. It is not a Meeting ID or raw provider ID. The member must organize the event; recurring occurrences cannot be changed here.

At least 1 character. At most 200 characters.

titlestringOptional

Display title.

At least 1 character. At most 500 characters.

startstringOptional

ISO 8601 start with an explicit time zone. For an update supply both start and end, or neither.

endstringOptional

ISO 8601 end with an explicit time zone, later than start. Updating only one boundary is refused.

Treat this as a proposal, not a completed calendar change

API calls are non-interactive proposals, even with approved member delegation. A standing calendar permission does not bypass human approval here. A valid proposal normally returns awaiting_permission and posts a card to the acting member in Brigg. The member can approve or refuse it there; no public operation approves the card.

For denied, stop: the member's calendar-action policy refuses the proposal. For done, inspect outcome.status. In particular, done with needs_auth means provider access must be connected or renewed; no calendar change happened. Open the returned auth_url only for that member to complete provider consent. The response schema also represents provider execution outcomes: only outcome.status=done denotes a completed attempt; failed includes reason.

Replaying the same idempotency key returns the original proposal response, not live approval status. Do not poll by creating more proposals. After the member acts, check the connected calendar or its synchronized records in List calendar events; synchronization can lag. If provider consent changed and the member still wants the action, submit a deliberate new proposal with a new key.

Provider access and action approval

List calendar connections first. The acting member needs a connected Google or Microsoft account with calendar write permission. The key's grant does not replace the provider's OAuth permission or the member's action policy. API calls propose an action for member approval; a standing setting does not turn an API call into the person's direct action.

Inspect status, outcome and permission before treating the action as complete. A response requiring approval must be continued by the member in Brigg; returning an approval card is not evidence that a provider event was written. Retrying with a new idempotency key can create another logical action.

For update or cancellation, use the Brigg record ID of the synchronized event, not a raw provider ID. A Brigg-owned event without a connected-provider identity uses the separate calendar-event operations.

Response

Returns 200 OK with a JSON body.

statusstringRequired

Proposal state: awaiting_permission requires the member's decision in Brigg; denied means their policy refused it; done requires inspecting outcome.status and does not itself prove a calendar write.

Allowed: "done", "awaiting_permission", "denied".

outcomeobjectOptional

Execution or provider-authorization result when top-level status is done. Missing on an awaiting_permission response.

Nested fields
statusstringRequired

done denotes a completed provider attempt; failed reports reason; needs_auth requires member provider consent before a new proposal can proceed.

Allowed: "done", "failed", "needs_auth".

reasonstringOptional

Machine-readable cause, such as missing_scope, no_connection, rate_limited or provider_error. Treat the reason set as extensible; do not assume failed is safe to repeat blindly.

auth_urlstringOptional

Member-only continuation URL when outcome.status=needs_auth. Open it for the same acting member to connect or renew provider access; do not fetch it with the API key.

job_idstringOptional

Optional shared action-result field. Calendar proposals do not return a polling job through this field; do not wait for it.

cardCalendarApprovalCardOptional

Approval card delivered to the acting member in Brigg. This is a proposal, not permission granted to the integration.

CalendarApprovalCard
idstringRequired

Identifier of the approval card. No public API accepts this ID to approve it or poll its decision.

kind"card_agent_permission"Required

Category identifying which variant of this model applies.

Always "card_agent_permission".

payloadobjectRequired

Action details shown for approval when the calendar policy requires review.

Nested fields
kind"card_agent_permission"Required

Category identifying which variant of this model applies.

Always "card_agent_permission".

permissionstringRequired

create_calendar_event for this calendar action. Other values belong to the shared card schema.

Allowed: "create_calendar_event", "send_email", "email_people", "text_people", "place_calls", "use_browser".

actionobject (8 variants)Required

The proposed calendar change. Only kind=update_calendar_event applies to this operation; other variants belong to the shared approval-card schema.

Nested fields

kind = "browser_task"

kind"browser_task"Required

Category identifying which variant of this model applies.

Always "browser_task".

goalstringRequired

Purpose the proposed agenda should help achieve.

start_urlstringOptional

URL where the acting member begins the connection flow.

contextstringOptional

Background information available for preparing the agenda.

attachmentsarray of objectOptional

Attachments supplied for the related action.

Item fields
file_idstringRequired

File identifier.

namestringRequired

Display name.

keep_tab_openbooleanOptional

Whether the connection flow requires its browser tab to remain open.

Allowed: false, true.

kind = "place_call"

kind"place_call"Required

Category identifying which variant of this model applies.

Always "place_call".

tostringRequired

Recipients of the related message or calendar action.

namenull or stringRequired

Display name.

briefstringRequired

Preparation summary for the upcoming meeting.

record_idstringOptional

Record identifier.

kind = "send_sms"

kind"send_sms"Required

Category identifying which variant of this model applies.

Always "send_sms".

tostringRequired

Recipients of the related message or calendar action.

namestringRequired

Display name.

textstringRequired

Text content.

record_idstringOptional

Record identifier.

unknown_recipientbooleanOptional

Whether the action includes a recipient not already recognized by the caller's policy.

Allowed: false, true.

kind = "contact_person"

kind"contact_person"Required

Category identifying which variant of this model applies.

Always "contact_person".

tostringRequired

Recipients of the related message or calendar action.

subjectstringRequired

Title or subject supplied for this calendar action.

bodystringRequired

Descriptive content supplied for the calendar action.

instructionstringOptional

Instructions to use when preparing the requested meeting content.

kind = "send_email"

kind"send_email"Required

Category identifying which variant of this model applies.

Always "send_email".

toarray of stringRequired

Recipients of the related message or calendar action.

ccarray of stringOptional

Recipients to copy on the related message.

subjectstringRequired

Title or subject supplied for this calendar action.

bodystringRequired

Descriptive content supplied for the calendar action.

kind = "create_calendar_event"

kind"create_calendar_event"Required

Category identifying which variant of this model applies.

Always "create_calendar_event".

titlestringRequired

Display title.

startstringRequired

Start of the interval.

endstringRequired

End of the interval; must be later than its start.

attendeesarray of stringOptional

People invited to the event and their invitation details.

add_conferencebooleanOptional

Whether to request a video-conference link from the connected calendar provider.

Allowed: false, true.

providerstringOptional

Connected calendar provider used for this action.

Allowed: "google", "microsoft".

kind = "update_calendar_event"

kind"update_calendar_event"Required

Category identifying which variant of this model applies.

Always "update_calendar_event".

event_idstringRequired

The same Brigg CalendarEvent record ID supplied as event_id. The card uses camelCase.

currentobjectRequired

Snapshot of the synchronized event when the proposal was prepared, not a promise that the event cannot change before approval.

Nested fields
titlestringRequired

Display title.

startstringRequired

Start of the interval.

endstringRequired

End of the interval; must be later than its start.

titlestringOptional

Display title.

startstringOptional

Start of the interval.

endstringOptional

End of the interval; must be later than its start.

kind = "cancel_calendar_event"

kind"cancel_calendar_event"Required

Category identifying which variant of this model applies.

Always "cancel_calendar_event".

event_idstringRequired

The same Brigg CalendarEvent record ID supplied as event_id. The card uses camelCase.

currentobjectRequired

Snapshot of the synchronized event when the proposal was prepared, not a promise that the event cannot change before approval.

Nested fields
titlestringRequired

Display title.

startstringRequired

Start of the interval.

endstringRequired

End of the interval; must be later than its start.

permissionstringOptional

The refused action policy. Calendar proposals use create_calendar_event, including updates and cancellations.

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.
400 event_not_found Choose the acting member's synchronized CalendarEvent ID, not a Meeting ID.
400 not_organizer Only the event's organizer can change it. Ask the organizer to act.
400 recurring_event Edit repeating events in the provider calendar; this API does not change occurrences or series.
400 invalid_range Use an end after start with explicit time zones.
400 invalid_action An update must change a title or supply both start and end.

Next steps

Download OpenAPI · Versioning & retirement

JSON schemas

Use the complete schemas for validation or client generation.

Full request JSON schema
{
  "type": "object",
  "properties": {
    "event_id": {
      "type": "string",
      "minLength": 1,
      "maxLength": 200,
      "description": "Brigg CalendarEvent record ID from ListCalendarEvents for this member's connected-provider event. It is not a Meeting ID or raw provider ID. The member must organize the event; recurring occurrences cannot be changed here."
    },
    "title": {
      "type": "string",
      "minLength": 1,
      "maxLength": 500,
      "description": "Display title."
    },
    "start": {
      "type": "string",
      "description": "ISO 8601 start with an explicit time zone. For an update supply both start and end, or neither."
    },
    "end": {
      "type": "string",
      "description": "ISO 8601 end with an explicit time zone, later than start. Updating only one boundary is refused."
    }
  },
  "required": [
    "event_id"
  ],
  "additionalProperties": false,
  "examples": [
    {
      "event_id": "e_calendar_kickoff",
      "title": "Northstar planning review"
    }
  ]
}
Full response JSON schema
{
  "type": "object",
  "description": "done means the policy allowed an attempt: inspect outcome.status for the provider result. awaiting_permission means a person must approve the action in Brigg. denied means the member's policy refused it. An approval response is not a completed provider write.",
  "properties": {
    "status": {
      "type": "string",
      "enum": [
        "done",
        "awaiting_permission",
        "denied"
      ],
      "description": "Proposal state: awaiting_permission requires the member's decision in Brigg; denied means their policy refused it; done requires inspecting outcome.status and does not itself prove a calendar write."
    },
    "outcome": {
      "type": "object",
      "properties": {
        "status": {
          "type": "string",
          "enum": [
            "done",
            "failed",
            "needs_auth"
          ],
          "description": "done denotes a completed provider attempt; failed reports reason; needs_auth requires member provider consent before a new proposal can proceed."
        },
        "reason": {
          "type": "string",
          "description": "Machine-readable cause, such as missing_scope, no_connection, rate_limited or provider_error. Treat the reason set as extensible; do not assume failed is safe to repeat blindly."
        },
        "auth_url": {
          "type": "string",
          "description": "Member-only continuation URL when outcome.status=needs_auth. Open it for the same acting member to connect or renew provider access; do not fetch it with the API key."
        },
        "job_id": {
          "type": "string",
          "description": "Optional shared action-result field. Calendar proposals do not return a polling job through this field; do not wait for it."
        }
      },
      "required": [
        "status"
      ],
      "additionalProperties": false,
      "description": "Execution or provider-authorization result when top-level status is done. Missing on an awaiting_permission response."
    },
    "card": {
      "description": "Approval card delivered to the acting member in Brigg. This is a proposal, not permission granted to the integration.",
      "title": "CalendarApprovalCard",
      "type": "object",
      "properties": {
        "id": {
          "type": "string",
          "description": "Identifier of the approval card. No public API accepts this ID to approve it or poll its decision."
        },
        "kind": {
          "type": "string",
          "const": "card_agent_permission",
          "description": "Category identifying which variant of this model applies."
        },
        "payload": {
          "type": "object",
          "properties": {
            "kind": {
              "type": "string",
              "const": "card_agent_permission",
              "description": "Category identifying which variant of this model applies."
            },
            "permission": {
              "type": "string",
              "enum": [
                "create_calendar_event",
                "send_email",
                "email_people",
                "text_people",
                "place_calls",
                "use_browser"
              ],
              "description": "create_calendar_event for this calendar action. Other values belong to the shared card schema."
            },
            "action": {
              "anyOf": [
                {
                  "type": "object",
                  "properties": {
                    "kind": {
                      "type": "string",
                      "const": "browser_task",
                      "description": "Category identifying which variant of this model applies."
                    },
                    "goal": {
                      "type": "string",
                      "description": "Purpose the proposed agenda should help achieve."
                    },
                    "start_url": {
                      "type": "string",
                      "description": "URL where the acting member begins the connection flow."
                    },
                    "context": {
                      "type": "string",
                      "description": "Background information available for preparing the agenda."
                    },
                    "attachments": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "file_id": {
                            "type": "string",
                            "description": "File identifier."
                          },
                          "name": {
                            "type": "string",
                            "description": "Display name."
                          }
                        },
                        "required": [
                          "file_id",
                          "name"
                        ],
                        "additionalProperties": false
                      },
                      "description": "Attachments supplied for the related action."
                    },
                    "keep_tab_open": {
                      "type": "boolean",
                      "enum": [
                        false,
                        true
                      ],
                      "description": "Whether the connection flow requires its browser tab to remain open."
                    }
                  },
                  "required": [
                    "kind",
                    "goal"
                  ],
                  "additionalProperties": false,
                  "description": "The proposed calendar change. Only kind=update_calendar_event applies to this operation; other variants belong to the shared approval-card schema."
                },
                {
                  "type": "object",
                  "properties": {
                    "kind": {
                      "type": "string",
                      "const": "place_call",
                      "description": "Category identifying which variant of this model applies."
                    },
                    "to": {
                      "type": "string",
                      "description": "Recipients of the related message or calendar action."
                    },
                    "name": {
                      "anyOf": [
                        {
                          "type": "null"
                        },
                        {
                          "type": "string"
                        }
                      ],
                      "description": "Display name."
                    },
                    "brief": {
                      "type": "string",
                      "description": "Preparation summary for the upcoming meeting."
                    },
                    "record_id": {
                      "type": "string",
                      "description": "Record identifier."
                    }
                  },
                  "required": [
                    "kind",
                    "to",
                    "name",
                    "brief"
                  ],
                  "additionalProperties": false,
                  "description": "The proposed calendar change. Only kind=update_calendar_event applies to this operation; other variants belong to the shared approval-card schema."
                },
                {
                  "type": "object",
                  "properties": {
                    "kind": {
                      "type": "string",
                      "const": "send_sms",
                      "description": "Category identifying which variant of this model applies."
                    },
                    "to": {
                      "type": "string",
                      "description": "Recipients of the related message or calendar action."
                    },
                    "name": {
                      "type": "string",
                      "description": "Display name."
                    },
                    "text": {
                      "type": "string",
                      "description": "Text content."
                    },
                    "record_id": {
                      "type": "string",
                      "description": "Record identifier."
                    },
                    "unknown_recipient": {
                      "type": "boolean",
                      "enum": [
                        false,
                        true
                      ],
                      "description": "Whether the action includes a recipient not already recognized by the caller's policy."
                    }
                  },
                  "required": [
                    "kind",
                    "to",
                    "name",
                    "text"
                  ],
                  "additionalProperties": false,
                  "description": "The proposed calendar change. Only kind=update_calendar_event applies to this operation; other variants belong to the shared approval-card schema."
                },
                {
                  "type": "object",
                  "properties": {
                    "kind": {
                      "type": "string",
                      "const": "contact_person",
                      "description": "Category identifying which variant of this model applies."
                    },
                    "to": {
                      "type": "string",
                      "description": "Recipients of the related message or calendar action."
                    },
                    "subject": {
                      "type": "string",
                      "description": "Title or subject supplied for this calendar action."
                    },
                    "body": {
                      "type": "string",
                      "description": "Descriptive content supplied for the calendar action."
                    },
                    "instruction": {
                      "type": "string",
                      "description": "Instructions to use when preparing the requested meeting content."
                    }
                  },
                  "required": [
                    "kind",
                    "to",
                    "subject",
                    "body"
                  ],
                  "additionalProperties": false,
                  "description": "The proposed calendar change. Only kind=update_calendar_event applies to this operation; other variants belong to the shared approval-card schema."
                },
                {
                  "type": "object",
                  "properties": {
                    "kind": {
                      "type": "string",
                      "const": "send_email",
                      "description": "Category identifying which variant of this model applies."
                    },
                    "to": {
                      "type": "array",
                      "items": {
                        "type": "string"
                      },
                      "description": "Recipients of the related message or calendar action."
                    },
                    "cc": {
                      "type": "array",
                      "items": {
                        "type": "string"
                      },
                      "description": "Recipients to copy on the related message."
                    },
                    "subject": {
                      "type": "string",
                      "description": "Title or subject supplied for this calendar action."
                    },
                    "body": {
                      "type": "string",
                      "description": "Descriptive content supplied for the calendar action."
                    }
                  },
                  "required": [
                    "kind",
                    "to",
                    "subject",
                    "body"
                  ],
                  "additionalProperties": false,
                  "description": "The proposed calendar change. Only kind=update_calendar_event applies to this operation; other variants belong to the shared approval-card schema."
                },
                {
                  "type": "object",
                  "properties": {
                    "kind": {
                      "type": "string",
                      "const": "create_calendar_event",
                      "description": "Category identifying which variant of this model applies."
                    },
                    "title": {
                      "type": "string",
                      "description": "Display title."
                    },
                    "start": {
                      "type": "string",
                      "description": "Start of the interval."
                    },
                    "end": {
                      "type": "string",
                      "description": "End of the interval; must be later than its start."
                    },
                    "attendees": {
                      "type": "array",
                      "items": {
                        "type": "string"
                      },
                      "description": "People invited to the event and their invitation details."
                    },
                    "add_conference": {
                      "type": "boolean",
                      "enum": [
                        false,
                        true
                      ],
                      "description": "Whether to request a video-conference link from the connected calendar provider."
                    },
                    "provider": {
                      "type": "string",
                      "enum": [
                        "google",
                        "microsoft"
                      ],
                      "description": "Connected calendar provider used for this action."
                    }
                  },
                  "required": [
                    "kind",
                    "title",
                    "start",
                    "end"
                  ],
                  "additionalProperties": false,
                  "description": "The proposed calendar change. Only kind=update_calendar_event applies to this operation; other variants belong to the shared approval-card schema."
                },
                {
                  "type": "object",
                  "properties": {
                    "kind": {
                      "type": "string",
                      "const": "update_calendar_event",
                      "description": "Category identifying which variant of this model applies."
                    },
                    "event_id": {
                      "type": "string",
                      "description": "The same Brigg CalendarEvent record ID supplied as event_id. The card uses camelCase."
                    },
                    "current": {
                      "type": "object",
                      "properties": {
                        "title": {
                          "type": "string",
                          "description": "Display title."
                        },
                        "start": {
                          "type": "string",
                          "description": "Start of the interval."
                        },
                        "end": {
                          "type": "string",
                          "description": "End of the interval; must be later than its start."
                        }
                      },
                      "required": [
                        "title",
                        "start",
                        "end"
                      ],
                      "additionalProperties": false,
                      "description": "Snapshot of the synchronized event when the proposal was prepared, not a promise that the event cannot change before approval."
                    },
                    "title": {
                      "type": "string",
                      "description": "Display title."
                    },
                    "start": {
                      "type": "string",
                      "description": "Start of the interval."
                    },
                    "end": {
                      "type": "string",
                      "description": "End of the interval; must be later than its start."
                    }
                  },
                  "required": [
                    "kind",
                    "event_id",
                    "current"
                  ],
                  "additionalProperties": false,
                  "description": "The proposed calendar change. Only kind=update_calendar_event applies to this operation; other variants belong to the shared approval-card schema."
                },
                {
                  "type": "object",
                  "properties": {
                    "kind": {
                      "type": "string",
                      "const": "cancel_calendar_event",
                      "description": "Category identifying which variant of this model applies."
                    },
                    "event_id": {
                      "type": "string",
                      "description": "The same Brigg CalendarEvent record ID supplied as event_id. The card uses camelCase."
                    },
                    "current": {
                      "type": "object",
                      "properties": {
                        "title": {
                          "type": "string",
                          "description": "Display title."
                        },
                        "start": {
                          "type": "string",
                          "description": "Start of the interval."
                        },
                        "end": {
                          "type": "string",
                          "description": "End of the interval; must be later than its start."
                        }
                      },
                      "required": [
                        "title",
                        "start",
                        "end"
                      ],
                      "additionalProperties": false,
                      "description": "Snapshot of the synchronized event when the proposal was prepared, not a promise that the event cannot change before approval."
                    }
                  },
                  "required": [
                    "kind",
                    "event_id",
                    "current"
                  ],
                  "additionalProperties": false,
                  "description": "The proposed calendar change. Only kind=update_calendar_event applies to this operation; other variants belong to the shared approval-card schema."
                }
              ],
              "description": "The proposed calendar change. Only kind=update_calendar_event applies to this operation; other variants belong to the shared approval-card schema."
            }
          },
          "required": [
            "kind",
            "permission",
            "action"
          ],
          "additionalProperties": false,
          "description": "Action details shown for approval when the calendar policy requires review."
        }
      },
      "required": [
        "id",
        "kind",
        "payload"
      ],
      "additionalProperties": false
    },
    "permission": {
      "type": "string",
      "description": "The refused action policy. Calendar proposals use create_calendar_event, including updates and cancellations."
    }
  },
  "required": [
    "status"
  ],
  "additionalProperties": false,
  "examples": [
    {
      "status": "awaiting_permission",
      "card": {
        "id": "card_calendar_proposal",
        "kind": "card_agent_permission",
        "payload": {
          "kind": "card_agent_permission",
          "permission": "create_calendar_event",
          "action": {
            "kind": "update_calendar_event",
            "event_id": "e_calendar_kickoff",
            "current": {
              "title": "Northstar project kickoff",
              "start": "2026-11-10T09:00:00.000Z",
              "end": "2026-11-10T09:45:00.000Z"
            },
            "title": "Northstar planning review"
          }
        }
      }
    }
  ]
}

Search by operation name or what you want to build.

Use arrow keys to browse. Enter opens a result.