Docs
  • Solver
  • Models
    • Field Service Routing
    • Employee Shift Scheduling
  • Platform
Try models
  • Long-term Machine Job Scheduling
  • Feature guides
  • Replanning

Long-term Machine Job Scheduling

    • Planning AI concepts
    • Getting started with long-term machine job scheduling
    • Feature guides
      • Production line unavailability
      • Replanning
    • Feature requests
    • New and noteworthy

Replanning

Every schedule is subject to change. New jobs may be added, existing jobs may be cancelled, or a production line may become unavailable.

To reflect the changes in the schedule, or to improve the schedule further, you can re-plan the jobs, with keeping the existing assignments from the previous plan as a part of the input.

{
  "lines": [
    {
      "id": "line A",
      "size": 2000,
      "startDate": "2024-12-01",
      "jobs": [
        "job 1",
        "job 2"
      ]
    }
  ]
}

However, including the assignments does not guarantee the jobs will be assigned to the same line as before.

For example, if a job is already in progress on a line, it should not move to a different line as a side effect of re-planning.

To make sure the assignment is always kept, you can pin the job to the line.

{
 "lines": [
    {
      "id": "line A",
      "size": 2000,
      "startDate": "2024-12-01",
      "jobs": [
        "job 1",
        "job 2"
      ]
    }
  ],
  "jobs": [
    {
      "id": "job 1",
      "durationInDays": 5,
      "size": 1000,
      "pinned": true
    },
    {
      "id": "job 2",
      "durationInDays": 10,
      "size": 1200
    }
  ]
}

In this example, job 1 is pinned to line A, while job 2 is not. Job 2 may be assigned to a different line during re-planning.

Pinning also guarantees that the start and end of the job processing does not change after re-planning. For that reason, you can pin a job only together with every preceding job on the line.

There is no need to bring completed jobs into the re-planning input unless that have impact on the future jobs.
  • © 2025 Timefold BV
  • Timefold.ai
  • Documentation
  • Changelog
  • Send feedback
  • Privacy
  • Legal
    • Light mode
    • Dark mode
    • System default