On-Call API › Overrides
Create an override
Puts override_user_id on call on this schedule between start_time and
end_time, in place of whoever the layers would have chosen. user_id
optionally records whom they are covering. The covering person must be a
member of the organization who can respond to alerts.
Permission (API-key scope): oncall:schedule:write.
Authorization
bearerAuth(oncall:schedule:write)apiKeyHeader(oncall:schedule:write)
Parameters
Path parameters
idstring requiredThe schedule's id.
Request body required
override_user_idstring requiredstart_timestring (date-time) requiredend_timestring (date-time) requireduser_idstringWhom they cover.reasonstring
Responses
201
The override.
dataScheduleOverride requiredShow ScheduleOverride properties
idstringschedule_idstringuser_idstringWhom the override covers, when recorded.override_user_idstringWho is on call instead.start_timestring (date-time)end_timestring (date-time)reasonstringcreated_atstring (date-time)
successboolean required
400
The body is not JSON (INVALID_BODY), or override_user_id, start_time or end_time is missing or a time is not RFC 3339 (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 (NOT_FOUND), or the person is not a member of the organization (NOT_A_MEMBER).
errorobject requiredcodestring requiredMachine-readable code. Branch on this.messagestring requiredHuman-readable explanation.
422
The person cannot respond to alerts: they do not hold oncall:alert:respond (CANNOT_RESPOND).
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.
503
Whether the person may be paged could not be checked right now; nothing was changed (MEMBER_CHECK_UNAVAILABLE). Retry shortly.
errorobject requiredcodestring requiredMachine-readable code. Branch on this.messagestring requiredHuman-readable explanation.
Example request
curl -X POST 'https://evohub.io/api/v1/schedules/5b1c7d2e-8f3a-4b9c-a0d1-e2f3a4b5c6d7/overrides' \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer <TOKEN>' \
-d '{
"reason": "Covering while Ayşe travels",
"user_id": "0b8e6c1a-2f4d-4e9b-8a7c-3d5e6f708192",
"end_time": "2026-10-13T09:00:00Z",
"start_time": "2026-10-12T18:00:00Z",
"override_user_id": "4c2a9e7b-1d3f-4a8c-b6e5-9f0a1b2c3d4e"
}'