Platform Schedule Configuration
Platform schedule configuration defines when a platform can publish and which time slots publication schedules can reference.
This page describes platform-level configuration. Publication instances use the dedicated
Publication Scheduling contract under
/api/v2/elements/{id}/publications/{publicationId}/schedule.
Schedule Modes
Each platform has one schedule mode:
| Mode | v2 field | Use |
|---|---|---|
| Weekly | weeklySchedule | The platform publishes on selected weekdays. |
| Manual | manualSchedule | The platform publishes on explicitly configured issue dates. |
Schedule modes are mutually exclusive
Non-null weeklySchedule and manualSchedule payloads are mutually exclusive.
When POST /api/v2/platforms omits both schedule fields, or sends both as null, v2 creates a
default weekly schedule with all seven weekdays set to true. PATCH treats explicit null
schedule fields as invalid.
Weekly Schedule
Weekly schedule payloads use explicit day flags:
Weekly schedule
When weeklySchedule is provided, all seven flags are required and null is invalid.
Manual Schedule
Manual schedules are arrays of publication dates:
Manual schedule
Create rules:
manualSchedulemust not be empty.- each entry requires
date. idmust be omitted on create.externalIdandnoteare optional.- dates must be unique within the request.
PUT Replacement
PUT /api/v2/platforms/{id} is full replacement for writable platform fields.
For schedule fields:
- a weekly platform must be replaced with
weeklySchedule. - a manual platform must be replaced with
manualSchedule. - replacing a weekly platform with
manualScheduleis rejected. - replacing a manual platform with
weeklyScheduleis rejected. - a manual replacement list replaces the resulting manual date set.
- manual entries with existing
idvalues update those entries; entries withoutidcreate new dates. - unknown manual schedule entry IDs are rejected.
PATCH Semantics
PATCH /api/v2/platforms/{id} is presence-aware.
For weekly platforms:
- omit
weeklyScheduleto leave it unchanged. - send the complete
weeklyScheduleobject to replace all seven day flags. - sending
manualScheduleis rejected because it would change the platform schedule mode.
For manual platforms:
- omit
manualScheduleto leave it unchanged. manualSchedule: []is a no-op instruction list.- send an entry without
idand withdateto add a manual date. - send an entry with
idto patch that existing date. - use
DELETE /api/v2/platforms/{platformId}/manual-schedule/{manualScheduleId}to delete an existing manual date. - deleting the last remaining manual date through that DELETE endpoint is rejected.
- duplicate manual entry IDs, duplicate resulting dates, unknown IDs, and whitespace-only
externalIdvalues are rejected. Empty string is normalized tonulland clears the value when the field is present.
weeklySchedule: null and manualSchedule: null are invalid in patch requests.
Time Slots
Platform responses can include timeSlots[]:
Platform response
Use these IDs in publication schedule timing:
Publication schedule timing
Time slots are read-only here
Time-slot IDs are read from platform configuration and are not created through publication schedule requests.
Platform create, PUT, and PATCH request schemas do not include a timeSlots write field. For
publication-level slot behavior, see
Publication Scheduling.
Platform Type Constraints
A platform's typeCode sets its publishing medium:
typeCode | Platform kind |
|---|---|
0 | Digital / broadcast |
1 | |
2 | Other |
v2 validates platform type combinations explicitly:
typeCodemust be0,1, or2.typeCode: 0(digital/broadcast) must useprintingTimeInDays: 0.typeCode: 0cannot setdisplayStoryByIssuetofalse.- print platforms (
typeCode: 1) cannot keep time slots in their resulting state.