EvoHub Docs Sign in

On-Call API › Overrides

Create an override

Use with AI
View as MarkdownThis page as plain text, for pasting into an AI tool Open in ClaudeAsk Claude questions about this page Open in ChatGPTAsk ChatGPT questions about this page
Connect to Cursor / VS Code / ClaudeSearch and read these docs from your AI tool (MCP server)

MCP server URL

https://docs-dev.evohub.io/mcp

Claude Code

claude mcp add --transport http evohub-docs-docs https://docs-dev.evohub.io/mcp

Claude (claude.ai and Claude Desktop): Settings → Connectors → Add custom connector, and paste the URL above.

Claude Desktop — claude_desktop_config.json

{
  "mcpServers": {
    "evohub-docs-docs": {
      "command": "npx",
      "args": [
        "-y",
        "mcp-remote",
        "https://docs-dev.evohub.io/mcp"
      ]
    }
  }
}

Cursor — ~/.cursor/mcp.json

{
  "mcpServers": {
    "evohub-docs-docs": {
      "url": "https://docs-dev.evohub.io/mcp"
    }
  }
}

VS Code — .vscode/mcp.json

{
  "servers": {
    "evohub-docs-docs": {
      "type": "http",
      "url": "https://docs-dev.evohub.io/mcp"
    }
  }
}
POST/api/v1/schedules/{id}/overrides

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

Any one of:

Parameters

Path parameters

  • id string required
    The schedule's id.
    Example: 5b1c7d2e-8f3a-4b9c-a0d1-e2f3a4b5c6d7

Request body required

Content type: application/json

Type: ScheduleOverrideCreate

  • override_user_id string required
  • start_time string (date-time) required
  • end_time string (date-time) required
  • user_id string
    Whom they cover.
  • reason string

Responses

201

The override.

Content type: application/json

Type: object

  • data ScheduleOverride required
    Show ScheduleOverride properties
    • id string
    • schedule_id string
    • user_id string
      Whom the override covers, when recorded.
    • override_user_id string
      Who is on call instead.
    • start_time string (date-time)
    • end_time string (date-time)
    • reason string
    • created_at string (date-time)
  • success boolean required
    Value: true

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).

Content type: application/json

Type: ValidationError

  • error object required
    • code string required
      Value: VALIDATION_FAILED
    • message string required
    • details array of object required
      • field string
      • message string

401

No API key was sent, or it is unknown, revoked or expired (UNAUTHORIZED).

Content type: application/json

Type: Error

  • error object required
    • code string required
      Machine-readable code. Branch on this.
    • message string required
      Human-readable explanation.

403

The key lacks the scope this endpoint needs (FORBIDDEN).

Content type: application/json

Type: Error

  • error object required
    • code string required
      Machine-readable code. Branch on this.
    • message string required
      Human-readable explanation.

404

No such schedule (NOT_FOUND), or the person is not a member of the organization (NOT_A_MEMBER).

Content type: application/json

Type: Error

  • error object required
    • code string required
      Machine-readable code. Branch on this.
    • message string required
      Human-readable explanation.

422

The person cannot respond to alerts: they do not hold oncall:alert:respond (CANNOT_RESPOND).

Content type: application/json

Type: Error

  • error object required
    • code string required
      Machine-readable code. Branch on this.
    • message string required
      Human-readable explanation.

429

Too many requests (RATE_LIMITED). Wait Retry-After seconds.

Headers

  • Retry-After integer
    Seconds to wait.

Content type: application/json

Type: Error

  • error object required
    • code string required
      Machine-readable code. Branch on this.
    • message string required
      Human-readable explanation.

500

Something went wrong on EvoHub's side (INTERNAL_ERROR). Retry later.

Content type: application/json

Type: Error

  • error object required
    • code string required
      Machine-readable code. Branch on this.
    • message string required
      Human-readable explanation.

503

Whether the person may be paged could not be checked right now; nothing was changed (MEMBER_CHECK_UNAVAILABLE). Retry shortly.

Content type: application/json

Type: Error

  • error object required
    • code string required
      Machine-readable code. Branch on this.
    • message string required
      Human-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"
}'

Last updated