Manage Workforce Schedule Edits

Organizations can use a third-party scheduling application to manage their workforce schedule, including editing workers schedules. Oracle Fusion Cloud Workforce Scheduling imports these schedules by performing a POST operation on the scheduleRequests resource.

Schedule managers can verify imported schedules using the Workforce Schedules page.

Let's discuss these scenarios:

Create a Shift from Enterprise Shifts on a Specific Day

Let's say that Alan Smith, a nurse practitioner, works Monday through Friday on an 8 AM to 6 PM shift. He was asked to work an additional morning shift on Saturday. Third-party scheduling sends the update to Alan's schedule.

Workforce Scheduling imports the additional schedule shift based on an existing enterprise shift for Alan using the POST operation on the scheduleRequests resource, with these attribute values.

  • importMode is UPDATE for the scheduleRequests resource.
  • importMode is UPDATE for the scheduleEvents resource for Alan.
  • shiftAction is CREATE for the scheduleShiftEvents resource.

Here's the Workforce Scheduling configuration that applies to this scenario.

Configuration Purpose
Enterprise Shifts Define a shift for all the shifts to be imported.
Schedule Generation Profiles Define schedule generation profiles to identify staffing departments, the scheduling period and other configuration options.
Work Patterns Define work patterns for workers.
Manage Common Lookups

Review the lookup type ORA_HWM_SHIFT_ENTRY_OWNER values. For shifts imported from a third-party scheduling application, the RequestSource field in the ScheduleRequest object is controlled by the owner.

  • If you use REST API just to load data, set RequestSource as ORA_HWM_WFM.
  • If you use REST API as an interface with a third-party scheduling application, register that application in this lookup and use the lookup code value as the RequestSource value.

To create an additional shift on a worker's workforce schedule:

  1. Extract from your third-party scheduling application, the revised schedule with the additional worker shift. The extracted shift exists as Enterprise Shift.
  2. Load the extracted data to Oracle Fusion Cloud Workforce Scheduling using the scheduleRequests REST service.
    1. Perform a POST operation on the scheduleRequests REST resource by using the sample payload.
    2. Verify the details returned in the response.
  3. Update the workforce schedule by running the Process Imported Shifts process to add the imported shift on the workforce schedule.

Example URL

Use this resource URL format.

POST

/hcmRestApi/resources/11.13.18.05/scheduleRequests

Example Request

Here's an example of the request body in JSON format:

{
    "scheduleRequestNumber": "Import004",
    "requestTime": "2025-01-01T12:00:00.010+01:00",
    "requestSource": "ORA_HWM_WFM",
    "importMode": "UPDATE",
    "startDate": "2025-06-02",
    "endDate": "2025-06-08",
    "validationFlag": "Y",
    "departmentName": "Clinic",
    "locationCode": "SAN_FRAN",
    "locationSetCode": "COMMON",
    "scheduleEvents": [
        {
        "scheduleEventNumber": "SE401",
        "resourceReferenceType": "PERSON_NUMBER",
        "resourceReference": "CLINIC_001",
        "importMode": "UPDATE",
        "scheduleShiftEvents": [
            {
            "scheduleShiftEventNumber": "SSE401-1",
            "shiftNumber": "SSE401-1",
            "shiftAction": "CREATE",
            "shiftTypeExtendedCode": "REGULAR",
            "workforceShiftName": "SHIFT_8A-1P",
            "shiftDate": "2025-06-07",
            "jobProfileType": "ORA_JOB",
            "jobProfile": "NP",
            "jobSetCode": "COMMON",
            "allowOvertimeFlag": "Y",
            "shiftIncentive": "100",
            "comments": "Additional Shift Request"
            }
        ]
        }
    ]
}

Example Response

Here's an example of the response body in JSON format.

Status 201 
{
    "scheduleRequestNumber": "Import004",
    "requestSource": "ORA_HWM_WFM",
    "schedRequestId": 300100658382122,
    "requestTime": "2025-01-01T12:00:00.010+01:00",
    "importMode": "UPDATE",
    "startDate": "2025-06-02",
    "endDate": "2025-06-08",
    "validationFlag": true,
    "departmentName": "Clinic",
    "locationCode": "SAN_FRAN",
    "locationSetCode": "COMMON",
    "locationId": null,
    "departmentId": null,
    "scheduleEvents": [
        {
            "resourceReferenceType": "PERSON_NUMBER",
            "resourceReference": "CLINIC_001",
            "importMode": "UPDATE",
            "periodStartDate": "2025-06-02",
            "periodEndDate": "2025-06-08",
            "publish": null,
            "workerNotification": null,
            "allowEdits": null,
            "schedEventId": 300100658382123,
            "schedRequestId": 300100658382122,
            "scheduleEventNumber": "SE401",
            "scheduleShiftEvents": [
                {
                    "shiftDuration": null,
                    "shiftNumber": "SSE401-1",
                    "shiftAction": "CREATE",
                    "referenceDay": null,
                    "shiftStartTime": null,
                    "shiftEndTime": null,
                    "shiftTimeNotWorked": null,
                    "shiftCategory": null,
                    "shiftCode": null,
                    "shiftType": null,
                    "schedShiftEventId": 300100658382124,
                    "schedEventId": 300100658382123,
                    "allowEdits": null,
                    "shiftTypeExtendedCode": "REGULAR",
                    "workforceShiftName": "SHIFT_8A-1P",
                    "shiftDate": "2025-06-07",
                    "paidBreakDuration": null,
                    "unpaidBreakDuration": null,
                    "comments": "Additional Shift Request",
                    "premiumShiftCode": null,
                    "allowOvertimeFlag": true,
                    "workforceShiftCategory": null,
                    "shiftIncentive": 100,
                    "otherQualification": null,
                    "otherQualificationType": null,
                    "jobProfile": "NP",
                    "jobProfileType": "ORA_JOB",
                    "jobSetCode": "COMMON",
                    "businessUnitName": null,
                    "scheduleShiftEventNumber": "SSE401-1",
                    "links": [
                            {...
                                }
                    ]
}

Create a Custom Shift on a Specific Day

Let's say that Alan Smith works Monday through Friday on an 8 AM to 6 PM shift. He was asked to work an additional morning shift on Saturday. Third-party scheduling sends the update to Alan's schedule.

Workforce Scheduling imports the additional schedule shift based on a custom shift for Alan using the POST operation on the scheduleRequests resource, with these attribute values.

  • importMode is UPDATE for the scheduleRequests resource.
  • importMode is UPDATE for the scheduleEvents resource for Alan.
  • shiftAction is CREATE for the scheduleShiftEvents resource.

Here's the Workforce Scheduling configuration that applies to this scenario.

Configuration Purpose
Schedule Generation Profiles Define schedule generation profiles to identify staffing departments, the scheduling period, and other configuration options.
Work Patterns Define work patterns for workers.
Manage Common Lookups

Review the lookup type ORA_HWM_SHIFT_ENTRY_OWNER values. For shifts imported from a third-party scheduling application, the RequestSource field in the ScheduleRequest object is controlled by the owner.

  • If you use REST API just to load data, set RequestSource as ORA_HWM_WFM.
  • If you use REST API as an interface with a third-party scheduling application, register that application in this lookup and use the lookup code value as the RequestSource value.

To create an additional shift on a worker's workforce schedule:

  1. Extract from your third-party scheduling application the revised schedule with the additional worker shift. The extracted shift doesn't exist as Enterprise Shift.
  2. Load the extracted data to Oracle Fusion Cloud Workforce Scheduling using the scheduleRequests REST service.
    1. Perform a POST operation on the scheduleRequests REST resource by using the sample payload.
    2. Verify the details returned in the response.
  3. Update the workforce schedule by running the Process Imported Shifts process to add the imported shift on the workforce schedule.

Example URL

Use this resource URL format.

POST

/hcmRestApi/resources/11.13.18.05/scheduleRequests

Example Request

Here's an example of the request body in JSON format:

{
    "scheduleRequestNumber": "Import004",
    "requestTime": "2025-01-01T12:00:00.010+01:00",
    "requestSource": "ORA_HWM_WFM",
    "importMode": "UPDATE",
    "startDate": "2025-06-02",
    "endDate": "2025-06-08",
    "validationFlag": "Y",
    "departmentName": "Clinic",
    "locationCode": "SAN_FRAN",
    "locationSetCode": "COMMON",
    "scheduleEvents": [
        {
        "scheduleEventNumber": "SE4001",
        "resourceReferenceType": "PERSON_NUMBER",
        "resourceReference": "CLINIC_001",
        "importMode": "UPDATE",
        "scheduleShiftEvents": [
            {
            "scheduleShiftEventNumber": "SSE4001-1",
            "shiftNumber": "SSE4001-1",
            "shiftAction": "CREATE",
            "shiftTypeExtendedCode": "REGULAR",
            "shiftStartTime": "2025-06-07T010:00:00+01:00",
            "shiftEndTime": "2025-06-07T017:00:00+01:00",
            "jobProfileType": "ORA_JOB",
            "jobProfile": "NP",
            "jobSetCode": "COMMON",
            "allowOvertimeFlag": "Y",
            "shiftIncentive": "100",
            "comments": "Additional Shift Request"
            }
        ]
        }
    ]
}

Example Response

Here's an example of the response body in JSON format.

Status 201
{
    "scheduleRequestNumber": "Import004",
    "requestSource": "ORA_HWM_WFM",
    "schedRequestId": 300100658395748,
    "requestTime": "2025-01-01T12:00:00.010+01:00",
    "importMode": "UPDATE",
    "startDate": "2025-06-02",
    "endDate": "2025-06-08",
    "validationFlag": true,
    "departmentName": "Clinic   ",
    "locationCode": "SAN_FRAN",
    "locationSetCode": "COMMON",
    "locationId": null,
    "departmentId": null,
    "scheduleEvents": [
        {
            "resourceReferenceType": "PERSON_NUMBER",
            "resourceReference": "CLINIC_001",
            "importMode": "UPDATE",
            "periodStartDate": "2025-06-02",
            "periodEndDate": "2025-06-08",
            "publish": null,
            "workerNotification": null,
            "allowEdits": null,
            "schedEventId": 300100658395749,
            "schedRequestId": 300100658395748,
            "scheduleEventNumber": "SE4001",
            "scheduleShiftEvents": [
                {
                    "shiftDuration": null,
                    "shiftNumber": "SSE4001-1",
                    "shiftAction": "CREATE",
                    "referenceDay": null,
                    "shiftStartTime": "2025-06-07T010:00:00+01:00",
                    "shiftEndTime": "2025-06-07T017:00:00+01:00",
                    "shiftTimeNotWorked": null,
                    "shiftCategory": null,
                    "shiftCode": null,
                    "shiftType": null,
                    "schedShiftEventId": 300100658395750,
                    "schedEventId": 300100658395749,
                    "allowEdits": null,
                    "shiftTypeExtendedCode": "REGULAR",
                    "workforceShiftName": null,
                    "shiftDate": null,
                    "paidBreakDuration": null,
                    "unpaidBreakDuration": null,
                    "comments": "Additional Shift Request",
                    "premiumShiftCode": null,
                    "allowOvertimeFlag": true,
                    "workforceShiftCategory": null,
                    "shiftIncentive": 100,
                    "otherQualification": null,
                    "otherQualificationType": null,
                    "jobProfile": "NP",
                    "jobProfileType": "ORA_JOB",
                    "jobSetCode": "COMMON",
                    "businessUnitName": null,
                    "scheduleShiftEventNumber": "SSE4001-1",
                    "links": [
                        {...
                             }
    ]
}


Update a Shift

Let's say that Alan Smith works Monday through Friday on an 8 AM to 6 PM shift. He had to leave a hour early on Thursday and stops working at 5 PM. Third-party scheduling sends the update to Alan's schedule.

Workforce Scheduling imports the schedule shift update for Alan using the POST operation on the scheduleRequests resource, with these attribute values.

  • importMode is UPDATE for the scheduleRequests resource.
  • importMode is UPDATE for the scheduleEvents resource for Alan.
  • shiftAction is UPDATE for the scheduleShiftEvents resource.

Here's the Workforce Scheduling configuration that applies to this scenario.

Configuration Purpose
Enterprise Shifts Define a shift for all shifts to be imported. In this example, the update of time doesn't match an enterprise shift and thus is imported with shiftStartTime and shiftEndTime.
Schedule Generation Profiles Define schedule generation profiles to identify staffing departments, the scheduling period and other configuration options.
Work Patterns Define work patterns for workers.
Manage Common Lookups

Review the lookup type ORA_HWM_SHIFT_ENTRY_OWNER values. For shifts imported from a third-party scheduling application, the RequestSource field in the ScheduleRequest object is controlled by the owner.

  • If you use REST API just to load data, set RequestSource as ORA_HWM_WFM.
  • If you use REST API as an interface with a third-party scheduling application, register that application in this lookup and use the lookup code value as the RequestSource value.

To update an additional shift on a worker's workforce schedule:

  1. Extract from your third-party scheduling application, the revised schedule with the updated worker shift.
  2. Load the extracted data to Oracle Fusion Cloud Workforce Scheduling using the scheduleRequests REST service.
    1. Perform a POST operation on the scheduleRequests REST resource by using the sample payload.
    2. Verify the details returned in the response.
  3. Update the workforce schedule by running the Process Imported Shifts process to update the imported shift on the workforce schedule.

Example URL

Use this resource URL format.

POST

/hcmRestApi/resources/11.13.18.05/scheduleRequests

Example Request

Here's an example of the request body in JSON format:

{
    "scheduleRequestNumber": "Import005",
    "requestTime": "2025-01-01T12:00:00.010+01:00",
    "requestSource": "ORA_HWM_WFM",
    "importMode": "UPDATE",
    "startDate": "2025-06-02",
    "endDate": "2025-06-08",
    "validationFlag": "Y",
    "departmentName": "Clinic",
    "locationCode": "SAN_FRAN",
    "locationSetCode": "COMMON",
    "scheduleEvents": [
        {
        "scheduleEventNumber": "SE501",
        "resourceReferenceType": "PERSON_NUMBER",
        "resourceReference": "CLINIC_001",
        "importMode": "UPDATE",
        "scheduleShiftEvents": [
            {
            "scheduleShiftEventNumber": "SSE501-1",
            "shiftNumber": "SSE101-1",
            "shiftAction": "UPDATE",
            "shiftStartTime": "2025-06-05T09:00:00+01:00",
            "shiftEndTime": "2025-06-05T17:00:00+01:00"
            }
        ]
        }
    ]
}

Example Response

Here's an example of the response body in JSON format.

Status 201
{
    "scheduleRequestNumber": "Import005",
    "requestSource": "ORA_HWM_WFM",
    "schedRequestId": 300100658389112,
    "requestTime": "2025-01-01T12:00:00.010+01:00",
    "importMode": "UPDATE",
    "startDate": "2025-06-02",
    "endDate": "2025-06-08",
    "validationFlag": true,
    "departmentName": "Clinic",
    "locationCode": "SAN_FRAN",
    "locationSetCode": "COMMON",
    "locationId": null,
    "departmentId": null,
    "scheduleEvents": [
        {
            "resourceReferenceType": "PERSON_NUMBER",
            "resourceReference": "CLINIC_001",
            "importMode": "UPDATE",
            "periodStartDate": "2025-06-02",
            "periodEndDate": "2025-06-08",
            "publish": null,
            "workerNotification": null,
            "allowEdits": null,
            "schedEventId": 300100658389113,
            "schedRequestId": 300100658389112,
            "scheduleEventNumber": "SE501",
            "scheduleShiftEvents": [
                {
                    "shiftDuration": null,
                    "shiftNumber": "SSE101-1",
                    "shiftAction": "UPDATE",
                    "referenceDay": null,
                    "shiftStartTime": "2025-06-05T09:00:00+01:00",
                    "shiftEndTime": "2025-06-05T17:00:00+01:00",
                    "shiftTimeNotWorked": null,
                    "shiftCategory": null,
                    "shiftCode": null,
                    "shiftType": null,
                    "schedShiftEventId": 300100658389114,
                    "schedEventId": 300100658389113,
                    "allowEdits": null,
                    "shiftTypeExtendedCode": null,
                    "workforceShiftName": null,
                    "shiftDate": null,
                    "paidBreakDuration": null,
                    "unpaidBreakDuration": null,
                    "comments": null,
                    "premiumShiftCode": null,
                    "allowOvertimeFlag": null,
                    "workforceShiftCategory": null,
                    "shiftIncentive": null,
                    "otherQualification": null,
                    "otherQualificationType": null,
                    "jobProfile": null,
                    "jobProfileType": null,
                    "jobSetCode": null,
                    "businessUnitName": null,
                    "scheduleShiftEventNumber": "SSE501-1",
                    "links": [
                        {...
                            }
    ]
}

Delete a Shift

Let's say that Alan Smith works Monday through Friday on an 8 AM to 6 PM shift. He applied for a day off on Friday. Third-party scheduling sends the update to Alan's schedule.

Workforce Scheduling imports the schedule shift deletion for Alan using the POST operation on the scheduleRequests resource, with these attribute values.

  • importMode is UPDATE for the scheduleRequests resource.
  • importMode is UPDATE for the scheduleEvents resource for Alan.
  • shiftAction is DELETE for the scheduleShiftEvents resource.

Here's the Workforce Scheduling configuration that applies to this scenario.

Configuration Purpose
Schedule Generation Profiles Define schedule generation profiles to identify staffing departments, the scheduling period, and other configuration options.
Work Patterns Define work patterns for workers.
Manage Common Lookups

Review the lookup type ORA_HWM_SHIFT_ENTRY_OWNER values. For shifts imported from a third-party scheduling app, the RequestSource field in the ScheduleRequest object is controlled by the owner.

  • If you use REST API just to load data, set RequestSource as ORA_HWM_WFM.
  • If you use REST API as an interface with a third-party scheduling application, register that application in this lookup and use the lookup code value as the RequestSource value.

To delete an existing shift on a worker's workforce schedule:

  1. Extract from your third-party scheduling application, the revised schedule with the deleted worker shift.
  2. Load the extracted data to Oracle Fusion Cloud Workforce Scheduling using the scheduleRequests REST service.
    1. Perform a POST operation on the scheduleRequests REST resource by using the sample payload.
    2. Verify the details returned in the response.
  3. Update the workforce schedule by running the Process Imported Shifts process to delete the imported shift from the workforce schedule.

Example URL

Use this resource URL format.

POST

/hcmRestApi/resources/11.13.18.05/scheduleRequests

Example Request

Here's an example of the request body in JSON format:

{
    "scheduleRequestNumber": "Import006",
    "requestTime": "2025-01-01T12:00:00.010+01:00",
    "requestSource": "ORA_HWM_WFM",
    "importMode": "UPDATE",
    "startDate": "2025-06-02",
    "endDate": "2025-06-08",
    "validationFlag": "Y",
    "departmentName": "Clinic",
    "locationCode": "SAN_FRAN",
    "locationSetCode": "COMMON",
    "scheduleEvents": [
        {
        "scheduleEventNumber": "SE601",
        "resourceReferenceType": "PERSON_NUMBER",
        "resourceReference": "CLINIC_001",
        "importMode": "UPDATE",
        "scheduleShiftEvents": [
            {
            "scheduleShiftEventNumber": "SS601-1",
            "shiftNumber": "SSE101-5",
            "shiftAction": "DELETE"
            }
        ]
        }
    ]
}

Example Response

Here's an example of the response body in JSON format.

Status 201 
{
    "scheduleRequestNumber": "Import006",
    "requestSource": "ORA_HWM_WFM",
    "schedRequestId": 300100658398355,
    "requestTime": "2025-01-01T12:00:00.010+01:00",
    "importMode": "UPDATE",
    "startDate": "2025-06-02",
    "endDate": "2025-06-08",
    "validationFlag": true,
    "departmentName": "Clinic",
    "locationCode": "SAN_FRAN",
    "locationSetCode": "COMMON",
    "locationId": null,
    "departmentId": null,
    "scheduleEvents": [
        {
            "resourceReferenceType": "PERSON_NUMBER",
            "resourceReference": "CLINIC_001",
            "importMode": "UPDATE",
            "periodStartDate": "2025-06-02",
            "periodEndDate": "2025-06-08",
            "publish": null,
            "workerNotification": null,
            "allowEdits": null,
            "schedEventId": 300100658398356,
            "schedRequestId": 300100658398355,
            "scheduleEventNumber": "SE601",
            "scheduleShiftEvents": [
                {
                    "shiftDuration": null,
                    "shiftNumber": "SSE101-5",
                    "shiftAction": "DELETE",
                    "referenceDay": null,
                    "shiftStartTime": null,
                    "shiftEndTime": null,
                    "shiftTimeNotWorked": null,
                    "shiftCategory": null,
                    "shiftCode": null,
                    "shiftType": null,
                    "schedShiftEventId": 300100658398357,
                    "schedEventId": 300100658398356,
                    "allowEdits": null,
                    "shiftTypeExtendedCode": null,
                    "workforceShiftName": null,
                    "shiftDate": null,
                    "paidBreakDuration": null,
                    "unpaidBreakDuration": null,
                    "comments": null,
                    "premiumShiftCode": null,
                    "allowOvertimeFlag": null,
                    "workforceShiftCategory": null,
                    "shiftIncentive": null,
                    "otherQualification": null,
                    "otherQualificationType": null,
                    "jobProfile": null,
                    "jobProfileType": null,
                    "jobSetCode": null,
                    "businessUnitName": null,
                    "scheduleShiftEventNumber": "SS601-1",
                    "links": [
                        {...
                            }
    ]
}