Skip to main content
DELETE
/
v4
/
meeting-type
/
{id}
Delete Meeting Type
curl --request DELETE \
  --url https://api.example.com/v4/meeting-type/{id}
Soft delete a meeting type. The meeting type is marked as deleted but retained in the database for historical records.

Endpoint

DELETE /v4/meeting-type/{id}

Request Headers

HeaderRequiredDescription
AuthorizationYesBearer <your-api-key>
x-meetergo-api-user-idYesUUID of the user who owns the meeting type

Path Parameters

ParameterTypeDescription
idstringUUID of the meeting type to delete

Query Parameters

ParameterTypeDefaultDescription
deleteAvailabilitybooleanfalseAlso delete the associated availability. Fails if availability is shared with other meeting types.

Examples

curl -X DELETE "https://api.meetergo.com/v4/meeting-type/770e8400-e29b-41d4-a716-446655440002" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "x-meetergo-api-user-id: 550e8400-e29b-41d4-a716-446655440000"

Response

Success (200 OK)

Empty response body. The meeting type has been soft deleted.

Error Responses

404 Not Found

{
  "statusCode": 404,
  "message": "Meeting type not found",
  "error": "Not Found"
}

403 Forbidden

{
  "statusCode": 403,
  "message": "Not authorized to delete this meeting type",
  "error": "Forbidden"
}

409 Conflict (when deleteAvailability=true)

Returned when the availability is shared with other meeting types:
{
  "statusCode": 409,
  "message": "Cannot delete availability - it is used by other meeting types",
  "sharedWith": [
    { "id": "880e8400-e29b-41d4-a716-446655440003", "slug": "demo-call" },
    { "id": "880e8400-e29b-41d4-a716-446655440004", "slug": "quick-chat" }
  ]
}

400 Bad Request (when deleteAvailability=true)

Returned when deleting the availability would leave the user with no availabilities:
{
  "statusCode": 400,
  "message": "One availability is required",
  "error": "Bad Request"
}

Behavior

  • Soft delete: The meeting type is marked with a deletedAt timestamp but not removed from the database
  • Booking URL disabled: The public booking URL stops accepting new bookings
  • Existing bookings preserved: Any existing appointments remain unaffected
  • Historical records: The meeting type data is retained for webhook history and reporting

Use Cases

Cleanup After Ticket Completion

When using meeting types for ticket-based workflows, delete the meeting type and its dedicated availability after the appointment is completed:
// After booking webhook received
async function handleBookingCompleted(webhookData) {
  const meetingTypeId = webhookData.data.meetingType.id;

  // Clean up the ticket-specific meeting type and its availability
  await fetch(`https://api.meetergo.com/v4/meeting-type/${meetingTypeId}?deleteAvailability=true`, {
    method: 'DELETE',
    headers: {
      'Authorization': 'Bearer YOUR_API_KEY',
      'x-meetergo-api-user-id': webhookData.data.hosts[0].id
    }
  });
}
Use deleteAvailability=true for ticket-based meeting types that have dedicated availability with specific time slots. This ensures complete cleanup.