Scheduler webhook
The Scheduler webhook notifies you of shift and availability changes in real-time.
Events
| Event Type | Description |
|---|---|
| shift_created | A new shift was created |
| shift_updated | An existing shift was updated |
| shift_deleted | A shift was deleted |
| availability_status_created | User availability was added |
| availability_status_deleted | User availability was removed |
NoteFor group shifts assigned to multiple users, each user triggers a separate event. A shift assigned to 3 users will result in 3 webhook payloads.
Event Examples
shift_created
{
"eventType": "shift_created",
"requestId": "b28d441c-e416-4c11-adb0-c8e0364ff29c",
"company": "your_company_id",
"activityType": "shift",
"eventTimestamp": 1736760013,
"schedulerId": 9454799,
"data": {
"shifts": [
{
"id": "6784dacb3c07733b0a849f49",
"title": "Morning Shift",
"color": "",
"assignedUserIds": [9170357],
"startTime": 1736924400,
"endTime": 1736942400,
"timezone": "Asia/Jerusalem",
"allDay": false,
"isOpenShift": false,
"isPublished": true,
"isRequireAdminApproval": false,
"jobId": "d4ad7232-576f-2ff6-c57d-8240f1089b00",
"locationData": {
"isReferencedToJob": true,
"gps": {
"address": "Times Square, Manhattan, NY, USA",
"longitude": -73.9855426,
"latitude": 40.7579747
}
},
"createdBy": 9170357,
"creationTime": 1736760011,
"updateTime": 1736760011,
"openSpots": null,
"notes": [],
"statuses": [],
"breaks": [],
"shiftDetails": {
"shiftLayers": []
}
}
]
}
}shift_updated
{
"eventType": "shift_updated",
"requestId": "c39e552d-f527-5d22-bdc1-d9f1475gg30d",
"company": "your_company_id",
"activityType": "shift",
"eventTimestamp": 1736762000,
"schedulerId": 9454799,
"data": {
"shifts": [
{
"id": "6784dacb3c07733b0a849f49",
"title": "Morning Shift - Updated",
"color": "",
"assignedUserIds": [9170357, 9170358],
"startTime": 1736924400,
"endTime": 1736946000,
"timezone": "Asia/Jerusalem",
"allDay": false,
"isOpenShift": false,
"isPublished": true,
"updateTime": 1736762000
}
]
}
}shift_deleted
{
"eventType": "shift_deleted",
"requestId": "5b496380-2053-414e-9a9e-983efefbb1b2",
"company": "your_company_id",
"activityType": "shift",
"eventTimestamp": 1736760206,
"schedulerId": 9454799,
"data": {
"ids": [
"6784dacb3c07733b0a849f49"
]
}
}availability_status_created
{
"eventType": "availability_status_created",
"requestId": "2907af4d-dae5-4778-b673-d2e437701b9c",
"company": "your_company_id",
"activityType": "shift_scheduler",
"eventTimestamp": 1736760518,
"schedulerId": 9454799,
"availabilityStatuses": [
{
"id": "6784dcc39585f9dc60f7a6cb",
"type": "unavailable",
"userId": 9170357,
"start": {
"timestamp": 1736935200,
"timezone": "Asia/Jerusalem"
},
"end": {
"timestamp": 1736935200,
"timezone": "Asia/Jerusalem"
},
"isAllDay": true,
"note": "Doctor appointment"
}
],
"isAdminAction": false
}availability_status_deleted
{
"eventType": "availability_status_deleted",
"requestId": "bc16a835-c3c6-4a94-83bb-694cf0c138b8",
"company": "your_company_id",
"activityType": "shift_scheduler",
"eventTimestamp": 1736760523,
"schedulerId": 9454799,
"availabilityStatuses": [
{
"id": "6784dcc39585f9dc60f7a6cb",
"type": "unavailable",
"userId": 9170357,
"start": {
"timestamp": 1736935200,
"timezone": "Asia/Jerusalem"
},
"end": {
"timestamp": 1736935200,
"timezone": "Asia/Jerusalem"
},
"isAllDay": true,
"note": ""
}
],
"isAdminAction": false
}Shift Payload Fields
| Field | Type | Description |
|---|---|---|
| id | string | Unique shift identifier |
| title | string | Shift name |
| color | string | Shift color |
| assignedUserIds | array | User IDs assigned to the shift |
| startTime | integer | Unix timestamp of shift start |
| endTime | integer | Unix timestamp of shift end |
| timezone | string | Timezone identifier |
| allDay | boolean | Whether this is an all-day shift |
| isOpenShift | boolean | Whether this is an open shift |
| isPublished | boolean | Whether the shift is published |
| isRequireAdminApproval | boolean | Whether admin approval is required |
| jobId | string | Associated job ID |
| locationData | object | Location information |
| createdBy | integer | User ID of the admin who created the shift |
| creationTime | integer | Unix timestamp of creation |
| updateTime | integer | Unix timestamp of last update |
| openSpots | integer | Number of open spots (null if not an open shift) |
| notes | array | Shift notes |
| statuses | array | Shift statuses |
| breaks | array | Shift breaks |
| shiftDetails | object | Additional shift details |
Availability Payload Fields
| Field | Type | Description |
|---|---|---|
| id | string | Unique availability ID |
| type | string | available or unavailable |
| userId | integer | User ID |
| start | object | Start timestamp and timezone |
| end | object | End timestamp and timezone |
| isAllDay | boolean | Whether it's an all-day status |
| note | string | Optional note |
| isAdminAction | boolean | Whether set by admin |
Updated 19 days ago
