On-call scheduling in Scrubbe lets you define which team member is responsible for responding to incidents during any given time window. When an incident is created and routed to the on-call contact — either by assigning assignedToEmail or through automatic escalation — Scrubbe knows who to notify via your configured channels (Slack, SMS, WhatsApp, or email). Maintaining accurate on-call assignments is the foundation of reliable incident response.
Assigning a team member to an on-call shift
Use POST /api/v1/assign-member to create an on-call assignment for a user on a specific date:
POST /api/v1/assign-member
{
"userId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"date": "2026-03-15",
"startTime": "09:00",
"endTime": "17:00"
}
| Field | Description |
|---|
userId | UUID of the team member being assigned |
date | Date of the shift in YYYY-MM-DD format |
startTime | Start of the shift in HH:MM 24-hour format |
endTime | End of the shift in HH:MM 24-hour format |
You can create multiple assignments on the same date to model overlapping coverage or handoffs between engineers.
You can look up user IDs from the members list at GET /api/v1/business/get_members.
Viewing assignments
Retrieve all on-call assignments for your organization:
GET /api/v1/get-all-assign
Retrieve a specific assignment by its ID:
GET /api/v1/get-assign/:id
These endpoints return the full assignment record including the user details, date, and time window.
Silent hours
Silent hours define notification quiet periods — windows during which Scrubbe suppresses non-critical alerts to prevent unnecessary interruptions. You configure silent hours per team, day of the week, and timezone.
Publishing silent hour rules
POST /api/v1/silent-hours replaces all existing quiet hour rules for your organization with the set you provide:
POST /api/v1/silent-hours
{
"rules": [
{
"name": "Frontend Platform",
"startTime": "21:00",
"endTime": "08:00",
"timezone": "America/New_York",
"daysOfWeek": [1, 2, 3, 4, 5],
"teamScope": "frontend-team",
"isActive": true
}
]
}
| Field | Description |
|---|
name | Label for the rule (e.g. team name or shift type) |
startTime | Start of the quiet period in HH:MM 24-hour format |
endTime | End of the quiet period in HH:MM 24-hour format |
timezone | IANA timezone name (e.g. America/New_York, Europe/London) |
daysOfWeek | Array of day numbers — 1 = Monday through 7 = Sunday |
teamScope | Optional team identifier this rule applies to |
isActive | Set to false to disable a rule without deleting it |
POST /api/v1/silent-hours replaces your entire set of quiet hour rules. If you want to preserve existing rules, retrieve them first with GET /api/v1/silent-hours and include them in the replacement payload.
Updating and deleting individual rules
To update a single rule without replacing your full set:
PUT /api/v1/silent-hours/:id
To delete a rule:
DELETE /api/v1/silent-hours/:id
How on-call connects to incident routing
When Scrubbe creates or escalates an incident, it routes notifications to the team member whose on-call assignment covers the current date and time. If autoEscalate is enabled in your IMS configuration, Scrubbe escalates unacknowledged incidents to the escalationContact defined in the matching SLA policy — which is typically your on-call lead or manager.
To keep routing accurate:
- Ensure every day has at least one active on-call assignment.
- Set your IMS timezone (
PUT /api/v1/ims/config) to match the timezone your team operates in.
- Define silent hours so that low-priority notifications don’t wake engineers during off-hours.