TagMangoTagMango Docs
Workshop

Check Video Call Availability

POST
/api/v1/external/workshops/video-calls/check-availability

Check whether a proposed time slot (one-time, daily, or weekly) overlaps with the creator's existing upcoming/ongoing video calls.

  • maximumOverlap of 0 means no conflicts; it counts the peak number of extra concurrent calls.
  • Back-to-back is allowed. Windows are half-open, so a call ending at 08:30 does NOT conflict with one starting at 08:30 — no gap is required. maximumOverlap, overlapList and the create/update endpoints all apply this same rule, so a slot reported clean here will be accepted.
  • overlapList contains each conflicting pair so the caller can show specifics to the user.
  • To check while editing an existing call, pass excludeVideocall (single) or groupId (recurring group) to exclude it from the conflict check.
AuthorizationBearer <token>

In: header

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

curl -X POST "https://api-prod-new.tagmango.com/api/v1/external/workshops/video-calls/check-availability" \  -H "x-whitelabel-host: string" \  -H "x-timezone-offset: string" \  -H "Content-Type: application/json" \  -d '{    "startDate": "2025-06-01",    "fromTime": "10:00",    "timezoneName": "Asia/Calcutta",    "duration": 60  }'
{
  "maximumOverlap": 1,
  "overlapList": [
    {
      "newCall": {
        "fromTime": "2025-06-01T10:00:00.000Z",
        "toTime": "2025-06-01T11:00:00.000Z"
      },
      "existingCall": {
        "fromTime": "2025-06-01T10:00:00.000Z",
        "toTime": "2025-06-01T11:00:00.000Z",
        "title": "Morning Standup"
      }
    }
  ]
}
{
  "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": "You can not access this api with a TagMango account, only available for whitelabel hosts",
  "result": "You can not access this api with a TagMango account, only available for whitelabel hosts",
  "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
}