Skip to content

Preview cover acceptance

POST
/v1/rotations/{rotationId}/cover-requests/{requestId}/accept/preview
curl --request POST \
--url https://api.roundrobinbot.eu/v1/rotations/example/cover-requests/example/accept/preview \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json-patch+json' \
--data '{ "operationId": "example", "expectedRevision": 1, "acknowledgedConflictIds": [ "example" ] }'

Requires a Slack member access token and the current request revision in expectedRevision. Returns conflicts and the rotation ETag without accepting the request. Review the conflicts before acknowledging them in the acceptance request.

rotationId
required
string
requestId
required
string

Revision and conflict acknowledgments for a cover response.

object
operationId

Caller-generated mutation identity, at most 128 characters. Reuse only for an identical retry.

string
expectedRevision

Request revision the caller reviewed.

integer | string format: int64
/^-?(?:0|[1-9]\d*)$/
acknowledgedConflictIds

Exact current conflict identifiers acknowledged by the accepting recipient.

Array<string>
Examplegenerated
{
"operationId": "example",
"expectedRevision": 1,
"acknowledgedConflictIds": [
"example"
]
}

OK

Media typeapplication/json

Conflict evaluation for the proposed terms. A preview does not change duty.

object
effectiveFrom
required

The later of the requested start and preview time. The actual write can begin later.

string format: date-time
to
required

The requested exclusive UTC end.

string format: date-time
conflicts
required

Observed conflicts and source uncertainties.

Array<object>

A conflict or an uncertainty affecting the proposed assignment.

object
id
required

The acknowledgment identifier for this conflict and the previewed terms.

string
type
required

absence, sameCellArrangement or unknownAvailability.

string
userId
required

The affected person’s Slack user identifier.

string
from
required

The inclusive UTC start of the conflict intersection with the requested interval.

string format: date-time
to
required

The exclusive UTC end of the conflict intersection with the requested interval.

string format: date-time
source
required

arrangement, manualAvailability, googleCalendar or slackStatus.

string
canAcknowledge
required

Whether explicit acknowledgment permits proceeding with this conflict. False means the conflict blocks the write.

boolean
canCommit
required

Whether every observed conflict permits acknowledgment and has been acknowledged. The write rechecks current state.

boolean
turnSelection
One of:
null
Examplegenerated
{
"effectiveFrom": "2026-04-15T12:00:00Z",
"to": "2026-04-15T12:00:00Z",
"conflicts": [
{
"id": "example",
"type": "example",
"userId": "example",
"from": "2026-04-15T12:00:00Z",
"to": "2026-04-15T12:00:00Z",
"source": "example",
"canAcknowledge": true
}
],
"canCommit": true,
"turnSelection": {
"kind": "example",
"from": "2026-04-15T12:00:00Z",
"to": "2026-04-15T12:00:00Z"
}
}