Scheduler webhook

The Scheduler webhook notifies you of shift and availability changes in real-time.

Events

Event TypeDescription
shift_createdA new shift was created
shift_updatedAn existing shift was updated
shift_deletedA shift was deleted
availability_status_createdUser availability was added
availability_status_deletedUser availability was removed
📝

Note

For 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

FieldTypeDescription
idstringUnique shift identifier
titlestringShift name
colorstringShift color
assignedUserIdsarrayUser IDs assigned to the shift
startTimeintegerUnix timestamp of shift start
endTimeintegerUnix timestamp of shift end
timezonestringTimezone identifier
allDaybooleanWhether this is an all-day shift
isOpenShiftbooleanWhether this is an open shift
isPublishedbooleanWhether the shift is published
isRequireAdminApprovalbooleanWhether admin approval is required
jobIdstringAssociated job ID
locationDataobjectLocation information
createdByintegerUser ID of the admin who created the shift
creationTimeintegerUnix timestamp of creation
updateTimeintegerUnix timestamp of last update
openSpotsintegerNumber of open spots (null if not an open shift)
notesarrayShift notes
statusesarrayShift statuses
breaksarrayShift breaks
shiftDetailsobjectAdditional shift details

Availability Payload Fields

FieldTypeDescription
idstringUnique availability ID
typestringavailable or unavailable
userIdintegerUser ID
startobjectStart timestamp and timezone
endobjectEnd timestamp and timezone
isAllDaybooleanWhether it's an all-day status
notestringOptional note
isAdminActionbooleanWhether set by admin

API Reference