Create or cancel a draft meeting
Create a meeting as a draft and understand the separate cancellation operation.
Use a draft when preparing organizer-managed meetings before they are ready to be confirmed. The request needs two registrants and a networking timeslot in the event; table availability and other meeting rules still apply.
Prepare the scope
Enable the meetings create action and mappings for requester_registrant_id, receiver_registrant_id, timeslot_id, draft and send_individual_notifications. In particular, allow the draft input so the server receives true rather than ignoring it. A sponsor-restricted scope requires the requester to represent an allowed sponsor.
Create a draft
Build a request
Example data only. No request is sent.
curl --fail-with-body --silent --show-error --globoff --max-time 30 --request POST \
--url "${BRELLA_API_BASE_URL}"'/api/core/organizations/123/events/456/meetings' \
--header "Accept: application/vnd.brella.v4+json" \
--header "Brella-API-Access-Token: ${BRELLA_API_ACCESS_TOKEN}" \
--header "Content-Type: application/json" \
--data-raw '{
"requester_registrant_id": 1201,
"receiver_registrant_id": 1202,
"timeslot_id": 5501,
"draft": true,
"send_individual_notifications": false
}'{
"data": {
"id": "1201",
"type": "meeting"
}
}The token scope determines returned fields. This selector illustrates that configuration; it does not change your token or the request.
The draft flag selects the draft creation flow. Without it, the creation flow uses an accepted meeting. send_individual_notifications: false alone does not turn an accepted meeting into a draft or disable all possible meeting side effects.
Save the returned data.id. Read the meeting back with status selected in the scope; its response field is current-status.
Update a draft
PATCH can change the timeslot of a draft through timeslot_id; it is not a general reschedule operation for an accepted meeting. Every ID must remain in the URL event, and capacity/availability checks can reject a move.
View the complete cURL example
curl --fail-with-body --silent --show-error --globoff --max-time 30 --request PATCH \
--url "${BRELLA_API_BASE_URL}"'/api/core/organizations/123/events/456/meetings/6001' \
--header "Accept: application/vnd.brella.v4+json" \
--header "Brella-API-Access-Token: ${BRELLA_API_ACCESS_TOKEN}" \
--header "Content-Type: application/json" \
--data-raw '{
"timeslot_id": 5502,
"preferred_table_index": 6,
"additional_registrant_ids": [
1203,
1204
],
"message": "Moved to the later slot"
}'Supplying additional_registrant_ids replaces the additional participants while preserving the requester and receiver. This operation can have notification side effects. Omit it when you only want to change the timeslot or a message.
Cancel separately
With the meetings update action and mappings for status and message, send status: "cancelled". Cancellation follows its own branch; other update fields in that request are ignored. It can notify participants and freezes the meeting chat.
View the complete cURL example
curl --fail-with-body --silent --show-error --globoff --max-time 30 --request PATCH \
--url "${BRELLA_API_BASE_URL}"'/api/core/organizations/123/events/456/meetings/6001' \
--header "Accept: application/vnd.brella.v4+json" \
--header "Brella-API-Access-Token: ${BRELLA_API_ACCESS_TOKEN}" \
--header "Content-Type: application/json" \
--data-raw '{
"status": "cancelled",
"message": "Cancelled by the event organizer"
}'Do not send status: "accepted" expecting to confirm a draft. This Core API PATCH path does not implement that transition. Use the supported organizer workflow for confirmation.
See meeting inputs for the full behavior and restrictions.