Two ways to write them
Inline (onPOST/PUT of the item, venue, or stay) is a full replace — the array you send becomes the complete set, and no operation is used:
Read custom fields
schedule.read / venues.read / accommodation.read
Response data — array of fields:
template_key.
Custom fields are also embedded in the records themselves — customFields on GET /v1/accommodation/{id} and on schedule items, venueCustomFields on GET /v1/venues/{id}.
Add, update, or remove fields
schedule.write / venues.write / accommodation.write
Body
Each entry:
Only the fields you list are touched. Omitting an existing field leaves it alone — this is not a full replace, unlike the inline form.
data: none.
Premade fields (templates)
Venues and stays have a catalogue of premade fields. PasstemplateKey instead of title and the server supplies the label:
GET /v1/reference/venue-field-templates and GET /v1/reference/stay-field-templates.
Omit templateKey for a free-form field — then title is required.
See also: Schedule, Venues, Accommodation, Reference Data.

