TagMangoTagMango Docs
Workshop

Update Video Call

PATCH
/api/v1/external/workshops/video-calls/{videoCallId}

Update an existing video call (webinar) owned by the creator.

  • Editable up to 30 minutes before the start time. Past that point — and for a call that is already in progress, cancelled, or completed — the call is locked and returns 409 Conflict.
  • Partial update: send only the fields you want to change; omitted fields are left untouched.
  • Rescheduling: startDate, fromTime and duration together define the call window. Pass any subset — the others fall back to the call's stored values. When the window moves, subscribers are notified automatically and rescheduled is true in the response.
  • Zoom links are binding: once a Zoom meeting link has been generated for the call, the time can no longer be changed (409 Conflict). Change other fields freely, or cancel and recreate the call.
  • Mango ownership is enforced on mango, excludeMangoes and mangoToSell — all must belong to the creator.
  • Recurrence is not editable here. This endpoint edits one occurrence; it cannot re-expand a recurring group into a different set of slots.
  • Run Check Video Call Availability first (passing excludeVideocall set to this call's ID) to confirm the new slot does not clash.
AuthorizationBearer <token>

In: header

Path Parameters

videoCallId*string

ID of the video-call occurrence

Header Parameters

x-whitelabel-host*string

Host name of the dashboard, ex: mydomain.tagmango.com

x-timezone-offset*string

Timezone offset (in number) example-> 330

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

application/json

application/json

application/json

application/json

application/json

application/json

application/json

curl -X PATCH "https://api-prod-new.tagmango.com/api/v1/external/workshops/video-calls/66c4964c11e7fef26751f3a7" \  -H "x-whitelabel-host: string" \  -H "x-timezone-offset: string" \  -H "Content-Type: application/json" \  -d '{}'
{
  "_id": "66c4964c11e7fef26751f3a7",
  "rescheduled": false
}

{
  "code": 400,
  "type": "Bad Request",
  "statusMessage": "BAD_REQUEST",
  "errorCode": "WORKSHOP_INVALID_SCHEDULE",
  "message": "The requested schedule cannot be used — duration outside 30–300 minutes, a start time in the past, `endDate` before `startDate`, a recurrence producing no occurrences, missing `endDate`/`repeatingDays` for daily/weekly recurrence, or a schedule ending after the creator's WEBINAR feature expiry.",
  "result": "The requested schedule cannot be used — duration outside 30–300 minutes, a start time in the past, `endDate` before `startDate`, a recurrence producing no occurrences, missing `endDate`/`repeatingDays` for daily/weekly recurrence, or a schedule ending after the creator's WEBINAR feature expiry.",
  "success": false
}

{
  "code": 401,
  "type": "Unauthorized",
  "statusMessage": "UNAUTHORIZED",
  "message": "Invalid token",
  "result": "Invalid token",
  "success": false
}

{
  "code": 403,
  "type": "Forbidden",
  "statusMessage": "FORBIDDEN",
  "errorCode": "WORKSHOP_MANGO_FORBIDDEN",
  "message": "A mango referenced in `mango`, `excludeMangoes`, or `mangoToSell` does not exist or belongs to another creator. All three are validated together.",
  "result": "A mango referenced in `mango`, `excludeMangoes`, or `mangoToSell` does not exist or belongs to another creator. All three are validated together.",
  "success": false
}

{
  "code": 404,
  "type": "Not Found",
  "statusMessage": "NOT_FOUND",
  "errorCode": "WORKSHOP_NOT_FOUND",
  "message": "No video call with this id belongs to this creator. Also returned when the id is valid but owned by someone else — ownership failures are not distinguished from missing records.",
  "result": "No video call with this id belongs to this creator. Also returned when the id is valid but owned by someone else — ownership failures are not distinguished from missing records.",
  "success": false
}

{
  "code": 409,
  "type": "Conflict",
  "statusMessage": "CONFLICT",
  "errorCode": "WORKSHOP_OVERLAP",
  "message": "The requested slot clashes with another of the creator's upcoming or ongoing TagMango-hosted calls. Custom-meeting-URL calls are exempt from this check on both sides. Use the check-availability endpoint to surface conflicts before writing.",
  "result": "The requested slot clashes with another of the creator's upcoming or ongoing TagMango-hosted calls. Custom-meeting-URL calls are exempt from this check on both sides. Use the check-availability endpoint to surface conflicts before writing.",
  "success": false
}

{
  "code": 429,
  "type": "Too Many Requests",
  "statusMessage": "TOO_MANY_REQUESTS",
  "message": "Request limit exceeded. try after 10 seconds",
  "result": "Request limit exceeded. try after 10 seconds",
  "success": false
}