Scheduled optimization


Scheduled optimization should be used when using optimization in a predictable and reliable cadence.

When using scheduled optimization, the solver is usually configured to run at a later time and can be made to run on a recurring schedule.

For example, your processes require a three-month planning horizon, or the schedule needs to be optimized prior to resources starting for the day, and therefore optimization runs must happen weekly or daily.

The longer the solver is allowed to run, the better the schedule is likely to be. When using scheduled optimization, the solver can run for up to 14 minutes. 


  • Scheduled optimization runs are limited to 2000 jobs and 2000 resources per region.
  • Multiple schedules can be created but each query can only be run once per day. 

Scheduling an optimization run

You can view all scheduled optimization runs and create new ones from the Scheduled optimization page in the Skedulo web app. 

Scheduled optimizations can be configured to run as a one-off at a specified time or on a recurring schedule.

1. Create a new scheduled optimization

  1. In the Skedulo web app, open Settings > Scheduled optimization.
  2. Click Create new in the upper-right to open the Create optimization schedule page.
    create optimization schedule
  3. Provide a name for the optimization schedule.
    The name can be anything and is used to identify the schedule in the list of optimization schedules as well as the Background tasks.
  4. Select the region you want to schedule. 
  5. Select the date you want the optimization engine to run for this scheduled optimization. 
    This date does not need to coincide with the start of the scheduling window.
    For example, you can elect to have the optimization engine run 30 days prior to the first scheduling window so that the schedule it produces is for the following month. 
  6. Select the earliest time on the run date that you want the solver to run. 
    Start times are listed in 15-minute increments. 

2. Choose your optimization settings

  1. The option to Use default scheduling settings is selected by default. 
    Deselect this option to override the global optimization settings defined in the Settings > Scheduling page and choose alternative scheduling objectives

  2. (optional) Choose alternate settings to use for this scheduled optimization run.
    The following alternative optimization options can be configured under Optimization engine settings:

    • Set the scheduling goal. 
    • Determine how the solver should treat jobs that are already scheduled.
    • Set the maximum amount of travel time in minutes for resources between jobs Hold the cursor over the information icon next to each setting to view the tooltip.


3. What do you want to optimize?

  1. Select the Date range up to 14 days for the scheduling window.
  2. Select the start date for the first scheduling window. 
    The date/s shown in the First scheduling window box is based on the start date of the scheduling window and the number of days selected for the Date range.
    select date range field
  3. By default, scheduled optimization will include all Pending jobs in the optimization run.
    1. (optional) Select Custom to choose the jobs you want to be included in the optimization run.
    2. Provide an EQL filter to define the jobs you want to use in this optimization run. 
      For example, filter by all jobs with Queued status: JobStatus == 'Queued' Filter specific jobs by providing their UID: UID IN ['<JobUID>', '<JobUID>', etc]
  4. By default, scheduled optimization will include all resources in the region in the scheduled optimization run.
    1. (optional) Select Custom to select the resources you want to include in the optimization run.
    2. Provide an EQL filter to define which resources you want to use in this optimization run.
      For example, filter all resources with a Full-time work type: EmploymentType == "Full-time" For more information about EQL filters, see the Developer documentation

4. Do you want to make the scheduled optimization recurring?

Scheduled optimization runs can be made recurring to run daily, every n number of days, weekly, monthly, or yearly. 

  1. Select Make optimization recurring to open the recurring schedule options.
  2. From the drop-down menu, select DailyWeeklyMonthly on Nth Day, or Yearly.
  3. Use the configuration options for each of these settings to make the scheduled optimization run recurring. 
  4. Set when the recurring scheduled optimization run should stop. Select Never, After a set number of occurrences, or On a specific date. 

See the following sections for more detail about recurring scheduled optimization runs. 

4.1 Recur scheduled optimization runs daily or every *n *days

Set how many days apart you want the scheduled optimization to run. 

In the following example, the optimization schedule will run every three days from the first scheduled run. 


4.2 Recur scheduled optimization runs weekly 

Schedule optimization runs to recur weekly or create a weekly recurring schedule pattern using the options. 

Select the day/s of the week you want the schedule to run and if the scheduled optimization should run this pattern weekly or every n number of weeks from the first run. 

This is useful for schedulers who want to create alternating weekly schedules with different requirements. 

In the following example, the recurring schedule will run every two weeks on Sunday and Wednesday, and the recurring schedule will end after the scheduled optimization has been run 12 times. 


4.3 Recur scheduled optimization monthly

Scheduled optimizations can recur on a specified day of the month. 

  1. Select Monthly on Nth Day from the drop-down list of Repeat options. 
  2. Select how often the optimization should run. 
    For example, you can run the optimization on the same day every month, every other month, etc. In the example below, the schedule will run once every three months, or quarterly. 
  3. Select which day of the month you want the schedule to run. The number represents the date of the month up to the 31st. 
    When the day of the month is greater than the number of days in the month, the scheduled optimization will run on the last day of the month. 
    In the example below, the schedule will run on the 31st or last day of every month. 

In the example shown, the recurring scheduled optimization run will have its final run on December 31, 2022. 


4.4 Recur scheduled optimization yearly

Recur scheduled optimizations on a yearly basis, so that they run once per year, or every n number of years. 

This is useful for organizations that plan out schedules of work annually or have long lead-in times to deliver work. 

In the following example, the scheduled optimization will run annually on the configured Run date (see 1. Create a new scheduled optimization, above) for the next two years.


5. How do you want to save the results?

Scheduled optimization runs in the background, and you will be notified when results are ready.

scheduled optimization notification

You can choose to either preview the results first in the Results page or you can automatically apply the results to the schedule when they are ready. 

See Optimization results and Optimization history for more information.


Modify an existing optimization schedule

You can modify an existing scheduled optimization from the Settings > Scheduled optimization page.

Click the name of the scheduled optimization in the list of schedules to open the editor, make the changes to the configuration you want for future runs of the scheduled optimization, then click Save.