Skip to content

Preview restored duty

GET
/v1/rotations/{rotationId}/duty-arrangements/{arrangementId}/restore-preview
curl --request GET \
--url https://api.roundrobinbot.eu/v1/rotations/example/duty-arrangements/example/restore-preview \
--header 'Authorization: Bearer <token>'

Requires read:oncall, write:duty and rotation edit authority. The assignment must permit ending. Projects the remaining interval without this assignment, using the current schedule and availability. No duty changes. Inspect complete and each segment’s resolved value before identifying returning holders. An incomplete result does not confirm all holders. The original recorded holders can differ from this preview. To end the assignment, send arrangementRevision as expectedRevision and the response ETag in If-Match. Fetch another preview after a stale revision or ETag refusal and review the result before retrying.

rotationId
required
string

The rotation identifier.

arrangementId
required
string

The active direct assignment to preview ending.

OK

Media typeapplication/json

Effective duty after ending the assignment, projected from the current schedule and availability.

object
asOfUtc
required

The UTC time of the preview.

string format: date-time
from
required

The later of the assignment start and preview time.

string format: date-time
to
required

The exclusive UTC end of the assignment.

string format: date-time
complete
required

Whether duty is resolved throughout the remaining interval. False means the preview cannot confirm all returning holders.

boolean
segments
required

Projected holders by interval after ending this assignment.

Array<object>

Effective duty during part of an assignment interval.

object
from
required

The inclusive UTC start.

string format: date-time
to
required

The exclusive UTC end.

string format: date-time
userIds
required

Slack user identifiers of the effective holders. An empty list means no assignee only when resolved is true.

Array<string>
resolved
required

Whether the holders or absence of duty are known for this interval.

boolean
originalDiffers
required

Whether the returning holders differ from the original holders. Null when either result is incomplete.

null | boolean
arrangementRevision
required

The revision to submit as expectedRevision when ending the assignment. Use the response ETag in If-Match.

integer | string format: int64
/^-?(?:0|[1-9]\d*)$/
Examplegenerated
{
"asOfUtc": "2026-04-15T12:00:00Z",
"from": "2026-04-15T12:00:00Z",
"to": "2026-04-15T12:00:00Z",
"complete": true,
"segments": [
{
"from": "2026-04-15T12:00:00Z",
"to": "2026-04-15T12:00:00Z",
"userIds": [
"example"
],
"resolved": true
}
],
"originalDiffers": true,
"arrangementRevision": 1
}