Scheduling
Meeting types, their open times, and bookings made into them.
Get the broker's hours
The time zone, phone hours, and booking hours of the key's broker, as Settings > Profile shows them. Open booking times come from these hours unless a meeting type has its own.
Get the broker's hours › Responses
Success
successAlways true on a successful response.
The requested record.
Update the broker's hours
Changes the time zone, phone hours, or booking hours of the key's broker. A key changes only its own broker's hours. Send all seven days of a schedule. A change applies to the open times offered after it. Booked appointments keep their times.
Update the broker's hours › Request Body
timezoneAn IANA time zone, e.g. America/Vancouver. Send null to use the brokerage time zone.
The phone hours, one entry for each day. Send null to use Monday to Friday, 9:00 to 17:00.
The booking hours, one entry for each day. Send null to make bookings use business_hours.
Update the broker's hours › Responses
Success
successAlways true on a successful response.
The requested record.
List the broker's blocked days
The days when clients cannot book the key's broker, on top of the weekly hours, earliest first. This is the Blocked days list in Settings > Booking.
List the broker's blocked days › Responses
Success
successAlways true on a successful response.
The page of results. The endpoint description and the Pagination guide give the order.
Offset pagination. Page forward until page reaches total_pages.
Block days
Blocks one day or a range of days for the key's broker. Clients cannot book the broker on those days. Appointments already booked on them stay. A day that is already blocked gets the new note. Returns the days that the request blocked.
Headers
Idempotency-KeyOptional for POST. An authorized retry with the same method, path, and exact body returns the stored response. Reservations last 24 hours. They belong to the original API key and broker. Reconcile uncertain results before you use a new key.
Block days › Request Body
from^(?:(?:\d\d[2468][04… · requiredThe first day to block, as YYYY-MM-DD.
to^(?:(?:\d\d[2468][04…The last day to block, as YYYY-MM-DD. Omit it to block one day. A range is at most 90 days.
noteA note for the days, e.g. Vacation.
Block days › Responses
Success
successAlways true on a successful response.
The page of results. The endpoint description and the Pagination guide give the order.
Offset pagination. Page forward until page reaches total_pages.
List meeting types
The booking links that your key's broker hosts, and the team links of their teams. Use a meeting type's id to get open times and to book.
query Parameters
page1-indexed page number, up to 1000000.
page_sizeRows per page. Capped at 100.
updated_sinceISO 8601 date-time, for example 2026-10-01T00:00:00Z. Returns only rows changed at or after it, in updated_at order and then id order, oldest first. A value that is not ISO 8601 gets 400 VALIDATION_ERROR.
after_idUse with updated_since to read the next page of a sync. Send the updated_at and id of the last row you read: the list then starts after that row, and a row that changes while you sync cannot be skipped. Keep page at 1. Without updated_since it gets 400 VALIDATION_ERROR.
List meeting types › Responses
Success
successAlways true on a successful response.
The page of results. The endpoint description and the Pagination guide give the order.
Offset pagination. Page forward until page reaches total_pages.
Create a meeting type
Adds a booking link, the same as New meeting type in Settings > Booking. Without team_id, the key's broker hosts it. With team_id, BrokerPlus picks a host from hosts for each booking. The new meeting type goes to the end of the order. A meeting type sends nothing when you create it. Its confirmation and reminders go to the clients who book it later.
Headers
Idempotency-KeyOptional for POST. An authorized retry with the same method, path, and exact body returns the stored response. Reservations last 24 hours. They belong to the original API key and broker. Reconcile uncertain results before you use a new key.
Create a meeting type › Request Body
nameThe meeting type name that the client sees, e.g. Discovery call.
duration_minutesThe length of each meeting, in minutes. 5 to 480.
descriptionText that the booking page shows under the name.
slot_interval_minutesThe step between the start times offered. Null steps by duration_minutes.
The weekly hours of this meeting type, one entry for each day. Null makes it follow the host's own booking hours (GET /me/hours).
buffer_before_minutesFree time kept before each meeting. 0 to 240.
buffer_after_minutesFree time kept after each meeting. 0 to 240.
locationWhere the meeting occurs, e.g. Google Meet.
min_notice_minutesThe shortest time between now and the earliest bookable start. 0 to 20160 (14 days).
max_advance_daysHow many days ahead a client can book. 1 to 365.
enabledSend false to turn the meeting type off. Clients cannot book it.
unlistedSend true to make the meeting type bookable by its URL only. The broker's booking page does not list it.
reminder_minutesWhen the client gets reminders, in minutes before the start, at most six. An empty list sends none. A change applies to the reminders that BrokerPlus did not send yet.
reminder_channelsHow each reminder goes out: email, sms, or both. An empty list sends none.
What the booking form collects. A field that you omit keeps its mode.
The broker's own questions on the booking form, in order, at most 20. Send the full list.
team_idA team to host the meeting type. The key's broker must be able to write for that team. Omit it for a personal meeting type that the key's broker hosts.
The hosts of a team meeting type, at least one. A personal meeting type takes none.
required_license_classThe licence a host must hold to take the meeting.
required_provinceThe province the host must be licensed in, e.g. ON.
Create a meeting type › Responses
Success
successAlways true on a successful response.
The requested record.
Put meeting types in order
Sets the order of the meeting types, the same as a drag in Settings > Booking. The booking page lists them in this order. Returns the meeting types in the new order.
Headers
Idempotency-KeyOptional for POST. An authorized retry with the same method, path, and exact body returns the stored response. Reservations last 24 hours. They belong to the original API key and broker. Reconcile uncertain results before you use a new key.
Put meeting types in order › Request Body
idsMeeting type ids in the new order, first to last. An id that your key cannot change keeps its place.
Put meeting types in order › Responses
Success
successAlways true on a successful response.
The page of results. The endpoint description and the Pagination guide give the order.
Offset pagination. Page forward until page reaches total_pages.
Delete a meeting type
Deletes a booking link, the same as Delete in Settings > Booking. Its booking URL stops. The appointments that clients already booked stay on the calendar, and BrokerPlus does not tell the clients. To stop new bookings and keep the link, send enabled: false with PATCH /meeting-types/{id}.
path Parameters
idResource id.
Delete a meeting type › Responses
Success
successAlways true on a successful response.
The requested record.
Update a meeting type
Changes the length, hours, buffers, notice, questions, reminders, or other settings of a meeting type. A change applies to the bookings made after it. A booking that a client already made keeps its time. You can change a personal meeting type of the key's broker, or a team meeting type of a team that the broker can write for. You cannot change the team or the hosts here.
path Parameters
idResource id.
Update a meeting type › Request Body
nameThe meeting type name that the client sees.
slugThe unique part of the booking page URL. A new slug stops the old URL. BrokerPlus does not change the slug when the name changes.
descriptionText that the booking page shows under the name.
duration_minutesThe length of each meeting, in minutes. 5 to 480.
slot_interval_minutesThe step between the start times offered. Null steps by duration_minutes.
The weekly hours of this meeting type, one entry for each day. Null makes it follow the host's own booking hours (GET /me/hours).
buffer_before_minutesFree time kept before each meeting. 0 to 240.
buffer_after_minutesFree time kept after each meeting. 0 to 240.
locationWhere the meeting occurs, e.g. Google Meet.
min_notice_minutesThe shortest time between now and the earliest bookable start. 0 to 20160 (14 days).
max_advance_daysHow many days ahead a client can book. 1 to 365.
enabledSend false to turn the meeting type off. Clients cannot book it.
unlistedSend true to make the meeting type bookable by its URL only. The broker's booking page does not list it.
reminder_minutesWhen the client gets reminders, in minutes before the start, at most six. An empty list sends none. A change applies to the reminders that BrokerPlus did not send yet.
reminder_channelsHow each reminder goes out: email, sms, or both. An empty list sends none.
What the booking form collects. A field that you omit keeps its mode.
The broker's own questions on the booking form, in order, at most 20. Send the full list.
Update a meeting type › Responses
Success
successAlways true on a successful response.
The requested record.
Get open times
The open start times of a meeting type, earliest first. BrokerPlus calculates them the same way as the booking page: each host's hours in their own time zone, split shifts, blocked days, buffers, minimum notice, and their busy calendar. The window is 14 days from from by default, and at most 31 days.
query Parameters
meeting_type_idRequired. The meeting type to get open times for.
fromISO 8601 timestamp. The start of the window. Defaults to now.
toISO 8601 timestamp. The end of the window. Defaults to 14 days after from.
Get open times › Responses
Success
successAlways true on a successful response.
The requested record.
Retrieve the booking on an appointment
What was booked into an appointment through a meeting type: the meeting type, the host, the client, their answers, and whether it was moved or canceled. Read it after a booking, move, or cancellation. A canceled booking stays readable with status canceled.
path Parameters
idResource id.
Retrieve the booking on an appointment › Responses
Success
successAlways true on a successful response.
The requested record.
Book a contact into a meeting type
Books a contact into an open time now, the same way the client's booking page does: BrokerPlus picks the host, puts the appointment on the host's calendar, and sends the client the booking confirmation email. The response is the booking. Get open times from GET /availability first. A key with the no_sending limit cannot use this endpoint. Supports Idempotency-Key.
Headers
Idempotency-KeyOptional for POST. An authorized retry with the same method, path, and exact body returns the stored response. Reservations last 24 hours. They belong to the original API key and broker. Reconcile uncertain results before you use a new key.
Book a contact into a meeting type › Request Body
meeting_type_idThe meeting type to book. Required.
contact_idThe contact to book. The booking uses the contact's name, email, and phone. Required.
start_at^(?:(?:\d\d[2468][04… · requiredISO 8601 start time. It must be a slot that GET /availability returns. Required.
client_timezoneAn IANA time zone, e.g. America/Toronto. The confirmation email shows the time in this zone. Required.
notesNotes for the meeting. Ignored when the form hides notes.
additional_guest_emailsUp to 10 other people to invite. Ignored when the form hides guests.
Answers to the meeting type's questions. Every required question needs one.
Book a contact into a meeting type › Responses
Success
successAlways true on a successful response.
The requested record.
Move a booked appointment
Moves an appointment that was booked into a meeting type to another time with the same host, now. BrokerPlus sends the client an email about the new time, the same one the client gets when they move it themselves. The response is the booking. A key with the no_sending limit cannot use this endpoint.
path Parameters
idResource id.
Headers
Idempotency-KeyOptional for POST. An authorized retry with the same method, path, and exact body returns the stored response. Reservations last 24 hours. They belong to the original API key and broker. Reconcile uncertain results before you use a new key.
Move a booked appointment › Request Body
start_at^(?:(?:\d\d[2468][04… · requiredISO 8601 new start time. It must be a slot that GET /availability returns for the same host.
Move a booked appointment › Responses
Success
successAlways true on a successful response.
The requested record.
Cancel a booked appointment
Cancels an appointment that was booked into a meeting type, now. BrokerPlus frees the time, removes the appointment from the calendar, and sends the client a cancellation email. The response is the booking, with status canceled. A key with the no_sending limit cannot use this endpoint.
path Parameters
idResource id.
Headers
Idempotency-KeyOptional for POST. An authorized retry with the same method, path, and exact body returns the stored response. Reservations last 24 hours. They belong to the original API key and broker. Reconcile uncertain results before you use a new key.
Cancel a booked appointment › Responses
Success
successAlways true on a successful response.
The requested record.