Documentation Index Fetch the complete documentation index at: https://developer.meetergo.com/llms.txt
Use this file to discover all available pages before exploring further.
Update an existing meeting type to change its name, duration, or other settings.
Endpoint
PATCH /v4/meeting-type/{meetingTypeId}
Header Required Description AuthorizationYes Bearer <your-api-key>x-meetergo-api-user-idYes UUID of the user who owns the meeting type Content-TypeYes application/json
Path Parameters
Parameter Type Required Description meetingTypeIdstring Yes UUID of the meeting type to update
Request Body
All fields are optional. Only include the fields you want to update.
Field Type Description meetingInfoobject Core meeting configuration (name, duration, channel, buffers, etc.) meetingOptionsobject Meeting options (channels, channel availability, etc.) enabledboolean Enable or disable the meeting type slugstring URL-friendly identifier timeslotIntervalnumber Timeslot interval in minutes (5-60) spotsnumber Available spots per timeslot (1-100) bookingMinimumnumber Minimum booking notice in minutes locationsstring[] Address(es) for in-person meetings. When multiple are provided, attendee can choose. availabilityIdstring ID of an existing availability to associate icsobject Calendar invite settings (title, description, location). See ics below.
meetingInfo
Field Type Description namestring Display name for the meeting type descriptionstring Description shown on the booking page durationnumber Meeting duration in minutes (5-480) channelstring Meeting channel type customChannelNamestring Display label for a custom meeting channel (used when channel is custom) customChannelLinkstring URL for the custom meeting channel (required when channel is custom) bufferBeforenumber Minutes blocked before meeting (0-120) bufferAfternumber Minutes blocked after meeting (0-120)
meetingOptions
Field Type Description allowedChannelsstring[] Channel options the attendee can choose from. When more than one channel is provided, channel selection is automatically enabled. channelAvailabilitiesobject Per-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 allowAddingGuestsboolean Allow attendees to invite additional guests allowPhoneOnlyBookingboolean Allow bookings without attendee email (phone as identifier). See Voice AI Bot
ics
Customize the calendar invite (ICS) that attendees and hosts receive. Each field accepts either a plain string or a multi-language object .
Field Type Description titlestring | object Calendar event title template descriptionstring | object Calendar event description template locationstring | object Calendar event location template
When you pass a plain string , it is stored under the meeting type’s default language. When you pass an object , each key is a language code (e.g. en, de) mapping to the template for that language.
Partial updates are supported: sending only description preserves the existing title and location. Sending { "de": "..." } preserves other languages within that field.
Use these placeholders in your templates — they are replaced with actual values when the calendar invite is generated.
Guest:
Tag Description {!M.Guest.Fullname}Full name {!M.Guest.FirstName}First name {!M.Guest.LastName}Last name {!M.Guest.Email}Email address {!M.Guest.Phone}Phone number {!M.Guest.QuestionsAndAnswers}All form answers
Host:
Tag Description {!M.Host.Fullname}Full name {!M.Host.Email}Email address
Meeting:
Tag Description {!M.Meeting.Name}Meeting type name {!M.Meeting.Description}Meeting type description {!M.Meeting.Location}Meeting location {!M.Meeting.Link}Join link {!M.Meeting.Venue}Venue / address {!M.Meeting.Start}Start date and time {!M.Meeting.Reschedule}Reschedule link {!M.Meeting.Cancel}Cancellation link
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.
Update Calendar Invite
Customize what appears in the calendar event description:
{
"ics" : {
"description" : "{!M.Meeting.Name} \n\n Email: {!M.Guest.Email} \n Phone: {!M.Guest.Phone} \n\n Reschedule: {!M.Meeting.Reschedule} \n Cancel: {!M.Meeting.Cancel}"
}
}
Update Calendar Invite (Multi-Language)
Provide different templates per language:
{
"ics" : {
"title" : {
"en" : "{!M.Meeting.Name}: {!M.Guest.Fullname} & {!M.Host.Fullname}" ,
"de" : "{!M.Meeting.Name}: {!M.Guest.Fullname} & {!M.Host.Fullname}"
},
"description" : {
"en" : "{!M.Meeting.Name} \n\n Email: {!M.Guest.Email} \n Phone: {!M.Guest.Phone} \n\n Reschedule: {!M.Meeting.Reschedule} \n Cancel: {!M.Meeting.Cancel}" ,
"de" : "{!M.Meeting.Name} \n\n E-Mail: {!M.Guest.Email} \n Telefon: {!M.Guest.Phone} \n\n Verschieben: {!M.Meeting.Reschedule} \n Absagen: {!M.Meeting.Cancel}"
},
"location" : "{!M.Meeting.Venue}"
}
}
You can mix string and object formats within the same request. In the example above, location is a plain string while title and description use multi-language objects.
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"
}
]
}
Create Meeting Type Create a new meeting type
List Meeting Types Get all meeting types