Update a room
Partial update of a room. Supports basic fields (name, code, personCapacity, addressNotes, locationId, isOnline, onlineLink), immediate status, and relation sync via amenityIds, courseIds, and moduleIds — each array replaces the full linked set when provided. Discover amenities via GET /amenities. Pass scheduledStatusChange to create a future or temporary availability window in the same request (returns 409 on overlap). When provided, personCapacity must be at least 1 unless isOnline is true. Scoped to your integration’s institution via Basic Auth credentials.
/rooms/{id}AuthorizationBasic auth · headerrequiredBasic Auth with clientId as username and clientSecret as password
idstringrequiredapplication/jsonnamestringDisplay name for the room, shown in the dashboard and when scheduling appointments (e.g. Lecture Hall A, Seminar Room 3).
personCapacityintegerMaximum number of people the room holds. Required on create. Must be at least 1 for physical rooms (isOnline: false or omitted). Use 0 only when isOnline is true.
codestringOptional short identifier for the room. When omitted or empty, a unique code is auto-generated from name.
addressNotesstringOptional free-text notes for finding or accessing the room (e.g. directions, door codes, wheelchair access).
amenityIdsstring[]Optional IDs of equipment/amenities to link to the room (e.g. Projector, Whiteboard). Discover available amenities via GET /amenities. Amenities must belong to your institution.
locationIdstring | nullOptional ID of a location (campus/building) this room belongs to. Pass null to leave the room unassigned.
statusstringRoom availability status in the dashboard. Defaults to ACTIVE on create; use MAINTENANCE or INACTIVE to hide or restrict booking. For scheduledStatusChange, this is the status applied during the scheduled window.
ACTIVEMAINTENANCEINACTIVEisOnlinebooleanWhether this is a virtual/online room rather than a physical space. When true, personCapacity may be 0 and onlineLink can hold the meeting URL.
onlineLinkstring | nullMeeting or video link for online rooms (e.g. Zoom or Teams URL). Only relevant when isOnline is true.
courseIdsstring[]Optional course IDs to link to the room. On update, replaces the full set of linked courses — omit courses you want to keep by including every desired ID. Courses must belong to your institution.
moduleIdsstring[]Optional course module IDs to link to the room (CourseModule.id). Version IDs (CourseModuleVersion.id) are also accepted and resolved to the parent module. On update, replaces the full linked set. Modules must belong to your institution.
scheduledStatusChangeobjectOptional scheduled availability change to create in the same request. Use for future or temporary status windows (e.g. maintenance from Monday–Friday). Omit endDate or pass null for an indefinite change. Returns 409 when the window overlaps an existing schedule.
Show propertiesHide properties
statusstringrequiredRoom availability status in the dashboard. Defaults to ACTIVE on create; use MAINTENANCE or INACTIVE to hide or restrict booking. For scheduledStatusChange, this is the status applied during the scheduled window.
ACTIVEMAINTENANCEINACTIVEstartDatestring<date-time>requiredWhen the scheduled status takes effect. Compared at minute precision in the dashboard.
endDatestring<date-time> | nullWhen the scheduled status ends and the room reverts to its base status. Omit or null for no end date (indefinite). Must be after startDate.
reasonstringOptional note explaining the change (e.g. Annual HVAC maintenance).
Updated room
dataRoomDetailrequiredFull room returned by GET /rooms/{id}, POST /rooms, and PATCH /rooms/{id}. Includes location, equipmentAndAmenities, courses, modules, and scheduledChanges (sorted by most recent startDate first).
Show propertiesHide properties
idstringrequirednamestringrequiredinstitutionIdstringrequiredpersonCapacityintegerrequiredaddressNotesstringrequiredAdditional address notes. Empty string when not set.
codestring | nulllocationIdstring | nullstatusstringrequiredACTIVEMAINTENANCEINACTIVEisOnlinebooleanrequiredonlineLinkstring | nulllocationLocationSummary | nullShow propertiesHide properties
idstringrequirednamestringrequiredDisplay name for the location — the label shown in the dashboard when managing rooms and assigning them to a site (e.g. Main Campus, North Building, Sleeping Pod Area).
addressstringrequiredPhysical street or postal address of the location. Used in the dashboard for map display and geocoding — provide a real-world address, not the location name repeated (e.g. 123 University Ave, 10115 Berlin).
institutionIdstringrequirednullequipmentAndAmenitiesAmenity[]requiredStructured equipment and amenities linked to the room.
Show propertiesHide properties
AmenityidstringrequiredinstitutionIdstringrequirednamestringrequiredcreatedAtstring<date-time>requiredupdatedAtstring<date-time>requiredcolorstring | nulliconstring | nullcoursesobject[]requiredShow propertiesHide properties
objectidstringrequiredroomIdstringrequiredcourseIdstringrequiredcourseobjectrequiredShow propertiesHide properties
idstringrequirednamestringrequiredcodestring | nullcolorinteger | nulliconstring | nulliconTypestring | nulllayer_idstringrequiredmodulesobject[]requiredShow propertiesHide properties
objectidstringrequiredroomIdstringrequiredmoduleIdstringrequiredmoduleobjectrequiredShow propertiesHide properties
idstringrequirednamestringrequiredcodestring | nullscheduledChangesRoomScheduledChange[]requiredAll scheduled status windows for this room (past, active, and future), sorted by most recent startDate first.
Show propertiesHide properties
RoomScheduledChangeidstringrequiredroomIdstringrequiredstatusstringrequiredACTIVEMAINTENANCEINACTIVEstartDatestring<date-time>requiredendDatestring<date-time> | nullreasonstring | nullcreatedAtstring<date-time>requiredcreatedByobject | nullrequiredShow propertiesHide properties
idstringrequirednamestringrequirednullmetaResponseMetarequiredShow propertiesHide properties
requestIdstringrequiredtimestampstring<date-time>requiredversionstringrequiredv4Bad Request
typestringrequirederrorcodestringrequiredbad_requestunauthorizedforbiddenresource_not_foundconflictvalidation_failedidempotency_key_reusedrate_limit_exceededinternal_errortitlestringrequiredstatusintegerrequireddetailstringrequiredinstancestringerrorsobject[]Show propertiesHide properties
objectfieldstringmessagestringUnauthorized
typestringrequirederrorcodestringrequiredbad_requestunauthorizedforbiddenresource_not_foundconflictvalidation_failedidempotency_key_reusedrate_limit_exceededinternal_errortitlestringrequiredstatusintegerrequireddetailstringrequiredinstancestringerrorsobject[]Show propertiesHide properties
objectfieldstringmessagestringNot Found
typestringrequirederrorcodestringrequiredbad_requestunauthorizedforbiddenresource_not_foundconflictvalidation_failedidempotency_key_reusedrate_limit_exceededinternal_errortitlestringrequiredstatusintegerrequireddetailstringrequiredinstancestringerrorsobject[]Show propertiesHide properties
objectfieldstringmessagestringConflict
typestringrequirederrorcodestringrequiredbad_requestunauthorizedforbiddenresource_not_foundconflictvalidation_failedidempotency_key_reusedrate_limit_exceededinternal_errortitlestringrequiredstatusintegerrequireddetailstringrequiredinstancestringerrorsobject[]Show propertiesHide properties
objectfieldstringmessagestringUnprocessable Entity — validation or business rule error
typestringrequirederrorcodestringrequiredbad_requestunauthorizedforbiddenresource_not_foundconflictvalidation_failedidempotency_key_reusedrate_limit_exceededinternal_errortitlestringrequiredstatusintegerrequireddetailstringrequiredinstancestringerrorsobject[]Show propertiesHide properties
objectfieldstringmessagestringToo Many Requests
typestringrequirederrorcodestringrequiredbad_requestunauthorizedforbiddenresource_not_foundconflictvalidation_failedidempotency_key_reusedrate_limit_exceededinternal_errortitlestringrequiredstatusintegerrequireddetailstringrequiredinstancestringerrorsobject[]Show propertiesHide properties
objectfieldstringmessagestringInternal Server Error
typestringrequirederrorcodestringrequiredbad_requestunauthorizedforbiddenresource_not_foundconflictvalidation_failedidempotency_key_reusedrate_limit_exceededinternal_errortitlestringrequiredstatusintegerrequireddetailstringrequiredinstancestringerrorsobject[]Show propertiesHide properties
objectfieldstringmessagestring