Skip to content

create_product_groups — Student

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

Parameter Type Required Description
productGroups CreateStudentProductGroupInput[] Yes Array of product group entries to create - CreateStudentProductGroupInput
Field Type Required Description
workspaceId string Yes The ID of the workspace
internalReference string Yes 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 are set. Null or omit for no limit.
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. Null or omit for no limit.
academicYear string Yes 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 (e.g. for e-signing). Omit or pass null for not set.
defaultExpiryDurationInSeconds number No The default expiry duration in seconds
productSegment ProductSegment No Segment classification for this student product group - ProductSegment
publishing PublishingInput No Publishing window configuration - PublishingInput

Contract dates establish two levels of boundaries that control the allowable booking window. All four fields are required.

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 Yes The earliest date a booking may start (outer lower bound)
contractLatestStartDate string Yes The latest date a booking may start (inner upper bound for start)
contractEarliestEndDate string Yes The earliest date a booking may end (inner lower bound for end)
contractLatestEndDate string Yes 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": [
{
"workspaceId": "workspace-id",
"internalReference": "PG-STUDENT-2026",
"academicYear": "2026/2027",
"contractEarliestStartDate": "2026-09-01",
"contractLatestStartDate": "2026-09-30",
"contractEarliestEndDate": "2027-05-01",
"contractLatestEndDate": "2027-08-31",
"productSegment": "ACADEMIC_YEAR",
"allowBookingExpiryTimer": true,
"defaultExpiryDurationInSeconds": 1800,
"publishing": {
"startDate": "2026-02-01",
"endDate": "2027-06-30"
}
}
]
}
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