Skip to main content
PATCH
/
v4
/
meeting-type
/
{id}
Update Meeting Type
curl --request PATCH \
  --url https://api.example.com/v4/meeting-type/{id}
Update an existing meeting type to change its name, duration, or other settings.

Endpoint

PATCH /v4/meeting-type/{meetingTypeId}

Request Headers

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

Path Parameters

ParameterTypeRequiredDescription
meetingTypeIdstringYesUUID of the meeting type to update
Get the meetingTypeId from the response when creating a user or creating a meeting type.

Request Body

All fields are optional. Only include the fields you want to update.
FieldTypeDescription
meetingInfoobjectCore meeting configuration (name, duration, channel, buffers, etc.)
meetingOptionsobjectMeeting options (channels, channel availability, etc.)
enabledbooleanEnable or disable the meeting type
slugstringURL-friendly identifier
timeslotIntervalnumberTimeslot interval in minutes (5-60)
spotsnumberAvailable spots per timeslot (1-100)
bookingMinimumnumberMinimum booking notice in minutes
locationsstring[]Address(es) for in-person meetings. When multiple are provided, attendee can choose.
availabilityIdstringID of an existing availability to associate

meetingInfo

FieldTypeDescription
namestringDisplay name for the meeting type
descriptionstringDescription shown on the booking page
durationnumberMeeting duration in minutes (5-480)
channelstringMeeting channel type
customChannelNamestringDisplay label for a custom meeting channel (used when channel is custom)
customChannelLinkstringURL for the custom meeting channel (required when channel is custom)
bufferBeforenumberMinutes blocked before meeting (0-120)
bufferAfternumberMinutes blocked after meeting (0-120)

meetingOptions

FieldTypeDescription
allowedChannelsstring[]Channel options the attendee can choose from. When more than one channel is provided, channel selection is automatically enabled.
channelAvailabilitiesobjectPer-channel availability overrides. Each value is a UUID string or an inline availability object. See Create Meeting Type - channelAvailabilities.
allowedDurationsnumber[]Additional duration options in minutes
allowAddingGuestsbooleanAllow attendees to invite additional guests
allowPhoneOnlyBookingbooleanAllow bookings without attendee email (phone as identifier). See Voice AI Bot

Examples

Update Name and Duration

curl -X PATCH "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" \
  -H "Content-Type: application/json" \
  -d '{
    "meetingInfo": {
      "name": "Updated Meeting Name",
      "duration": 60,
      "description": "A longer consultation meeting"
    }
  }'

Update Custom Channel

{
  "meetingInfo": {
    "channel": "custom",
    "customChannelName": "Company Webinar Platform",
    "customChannelLink": "https://webinar.example.com/room/abc123"
  }
}

Update In-Person Location

{
  "locations": ["Berlin Office - Friedrichstr. 123", "Munich Office - Marienplatz 5"]
}
The locations field is used with the local (in-person at host) channel. When multiple locations are provided, the attendee can choose on the booking page.

Update Channel Availabilities

Add or replace per-channel availability overrides:
{
  "meetingOptions": {
    "allowedChannels": ["zoom", "phone", "local"],
    "channelAvailabilities": {
      "phone": {
        "name": "Phone Hours",
        "timezone": "Europe/Berlin",
        "schedule": {
          "monday": { "enabled": true, "hours": [{ "start": "08:00", "end": "12:00" }] },
          "tuesday": { "enabled": true, "hours": [{ "start": "08:00", "end": "12:00" }] },
          "wednesday": { "enabled": false, "hours": [] },
          "thursday": { "enabled": false, "hours": [] },
          "friday": { "enabled": false, "hours": [] },
          "saturday": { "enabled": false, "hours": [] },
          "sunday": { "enabled": false, "hours": [] }
        }
      },
      "local": {
        "name": "In-Person Exceptions",
        "timezone": "Europe/Berlin",
        "exceptions": [
          { "available": false, "start": "2026-05-01T00:00", "end": "2026-05-01T23:59", "title": "Office Closed" }
        ]
      }
    }
  }
}
Inline availability objects are created automatically and stored as UUIDs. On subsequent reads, channelAvailabilities values are always UUID strings.

Response

Success (200 OK)

{
  "id": "770e8400-e29b-41d4-a716-446655440002",
  "meetingInfo": {
    "name": "Updated Meeting Name",
    "duration": 60,
    "description": "A longer consultation meeting"
  },
  "slug": "john-smith-45min",
  "bookingUrl": "https://cal.meetergo.com/john-smith/john-smith-45min",
  "updatedAt": "2024-01-15T11:00:00Z"
}

Error Responses

404 Not Found

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

400 Bad Request - Validation Error

{
  "statusCode": 400,
  "message": "Validation failed",
  "errors": [
    {
      "field": "duration",
      "message": "Duration must be a positive number"
    }
  ]
}