On-Call API › Schedule layers
Update a layer
Changes a layer. name, priority, rotation_type, rotation_start and
handoff_time keep their value when left out or empty. handoff_day keeps
its value when left out and is written when sent, 0 included. The
restrict_* fields change only when sent; send empty strings for both times
(and an empty weekday list) to turn a shift back into an all-day layer.
Permission (API-key scope): oncall:schedule:write.
Authorization
bearerAuth(oncall:schedule:write)apiKeyHeader(oncall:schedule:write)
Parameters
Path parameters
idstring requiredThe schedule's id.layerIDstring requiredThe layer's id. It must belong to the schedule in the path.
Request body required
On create name and rotation_type are required.
namestringpriorityintegerrotation_typeRotationTyperotation_startstring (date-time)Defaults to now on create.handoff_dayintegerhandoff_timestringHH:MMrestrict_to_weekdaysarray of integer0 is Sunday.restrict_start_timestringHH:MM; give the end too. Empty clears the window.restrict_end_timestringHH:MM; may be earlier than the start for a shift across midnight.
Responses
200
The layer after the change.
dataScheduleLayer requiredShow ScheduleLayer properties
idstringschedule_idstringnamestringpriorityintegerLayers with a higher priority win over lower ones.rotation_typeRotationTyperotation_startstring (date-time)When the rota's first turn started.handoff_dayintegerWeekday of the handover for weekly rotas, 0 (Sunday) to 6.handoff_timestringHH:MMof the handover.restrict_to_weekdaysarray of integerrestrict_start_timestringHH:MMrestrict_end_timestringHH:MMrotationsarray of ScheduleRotationShow ScheduleRotation properties
idstringlayer_idstringuser_idstringpositioninteger0-based place in the rota.created_atstring (date-time)
created_atstring (date-time)updated_atstring (date-time)
successboolean required
400
The body is not JSON (INVALID_BODY), or a weekday or the shift window is invalid (VALIDATION_FAILED).
errorobject requiredcodestring requiredmessagestring requireddetailsarray of object requiredfieldstringmessagestring
401
No API key was sent, or it is unknown, revoked or expired (UNAUTHORIZED).
errorobject requiredcodestring requiredMachine-readable code. Branch on this.messagestring requiredHuman-readable explanation.
403
The key lacks the scope this endpoint needs (FORBIDDEN).
errorobject requiredcodestring requiredMachine-readable code. Branch on this.messagestring requiredHuman-readable explanation.
404
No such schedule, or no such layer on it (NOT_FOUND).
errorobject requiredcodestring requiredMachine-readable code. Branch on this.messagestring requiredHuman-readable explanation.
429
Too many requests (RATE_LIMITED). Wait Retry-After seconds.
Retry-AfterintegerSeconds to wait.
errorobject requiredcodestring requiredMachine-readable code. Branch on this.messagestring requiredHuman-readable explanation.
500
Something went wrong on EvoHub's side (INTERNAL_ERROR). Retry later.
errorobject requiredcodestring requiredMachine-readable code. Branch on this.messagestring requiredHuman-readable explanation.
Example request
curl -X PATCH 'https://evohub.io/api/v1/schedules/5b1c7d2e-8f3a-4b9c-a0d1-e2f3a4b5c6d7/layers/7c3d9e1f-2a4b-4c6d-8e0f-1a2b3c4d5e6f' \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer <TOKEN>' \
-d '{
"handoff_day": 1,
"restrict_end_time": "",
"restrict_start_time": "",
"restrict_to_weekdays": []
}'