Skip to content

update_product_groups — Student

Update one or more Student product groups, including academic year, contract date windows, and segment classification.

Parameter Type Required Description
productGroups UpdateStudentProductGroupInput[] Yes Array of product group entries to update - UpdateStudentProductGroupInput

All fields except productGroupId are optional. Only provided fields are patched.

Field Type Required Description
productGroupId string Yes The ID of the product group to update
workspaceId string No The ID of the workspace
internalReference string No The internal reference of the product group
maxOccupants number | null No Most people who may live in a unit booked through this product group. A head count, not target occupancy. Must be at least 1 and >= minOccupants when both end up set. Pass null to clear (no limit); omit to leave unchanged.
minOccupants number | null No Fewest people who may live in a unit booked through this product group. A head count, not target occupancy. Must be at least 1. Pass null to clear (no limit); omit to leave unchanged.
academicYear string No The academic year in YYYY/YYYY format (e.g. 2026/2027)
agreementId string No The ID of the associated agreement
allowBookingExpiryTimer boolean No Whether booking expiry timer is allowed
cancelationPolicyId string No The ID of the cancelation policy to associate
contractTemplateExternalId string | null No External ID of the contract template. Pass null to clear; omit to leave unchanged.
defaultExpiryDurationInSeconds number No The default expiry duration in seconds
productSegment ProductSegment | null No Segment classification for this student product group. Pass null to clear. - ProductSegment
publishing PublishingInput No Publishing window configuration - PublishingInput

All contract date fields are optional on update — provide only the fields you want to change.

The outer bounds (contractEarliestStartDate and contractLatestEndDate) define the absolute window — no booking can start before contractEarliestStartDate or end after contractLatestEndDate.

The inner bounds (contractLatestStartDate and contractEarliestEndDate) define flexibility within those outer limits:

  • A booking can start anywhere between contractEarliestStartDate and contractLatestStartDate (e.g. a student arriving late).
  • A booking can end anywhere between contractEarliestEndDate and contractLatestEndDate (e.g. a student leaving early).
Field Type Required Description
contractEarliestStartDate string No The earliest date a booking may start (outer lower bound)
contractLatestStartDate string No The latest date a booking may start (inner upper bound for start)
contractEarliestEndDate string No The earliest date a booking may end (inner lower bound for end)
contractLatestEndDate string No The latest date a booking may end (outer upper bound)
Value Description
FULL_YEAR Student accommodation spanning the full calendar year including summer
ACADEMIC_YEAR Student accommodation covering the full academic year, excluding the summer period
SEMESTER_1 Student accommodation for the first semester of the academic year only
SEMESTER_2 Student accommodation for the second semester of the academic year only

The publishing window controls when products are visible to bookers. Its lifecycle moves through three states: SCHEDULED (not yet active), ONGOING (currently active), and FINISHED (window has ended).

Field Type Required Description
startDate string No Date when products start showing. Defaults to today if not provided.
endDate string No Date when products stop showing. Defaults to contractLatestEndDate from the request payload if not provided.
{
"productGroups": [
{
"productGroupId": "product-group-id",
"productSegment": "SEMESTER_1",
"contractLatestStartDate": "2026-10-15",
"contractLatestEndDate": "2027-09-30",
"publishing": {
"endDate": "2027-07-31"
}
}
]
}
Field Type Description
content ContentItem[] Array of content items returned by the tool - ContentItem
isError boolean Whether the tool execution resulted in an error
Field Type Description
type 'text' Content type (currently only ‘text’ is supported)
text string The text content to display