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' \
--data '{ "acknowledgedConflictIds": [ "example" ], "expectedRevision": 1, "operationId": "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
acknowledgedConflictIds

Exact current conflict identifiers acknowledged by the accepting recipient.

Array<string>
expectedRevision

Request revision the caller reviewed.

integer format: int64
operationId

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

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

OK

Media typeapplication/json

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

object
canCommit
required

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

boolean
conflicts
required

Observed conflicts and source uncertainties.

Array<object>

A conflict or an uncertainty affecting the proposed assignment.

object
canAcknowledge
required

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

boolean
from
required

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

string format: date-time
id
required

The acknowledgment identifier for this conflict and the previewed terms.

string
source
required

arrangement, manualAvailability, googleCalendar or slackStatus.

string
to
required

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

string format: date-time
type
required

absence, sameCellArrangement or unknownAvailability.

string
userId
required

The affected person’s Slack user identifier.

string
effectiveFrom
required

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

string format: date-time
oneClick

On a cover acceptance preview only: allowed when the acceptance can be committed from one action, unavailable when the caller cannot accept, conflictReview when conflicts need review first. Null on every other preview.

null | string
to
required

The requested exclusive UTC end.

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