Docs
  • Solver
  • Models
    • Field Service Routing
    • Employee Shift Scheduling
    • Pick-up and Delivery Routing
    • Task Scheduling
  • Platform
Try models
  • Task Scheduling
  • User guide
  • Input datasets
  • Model input

Task Scheduling

    • Introduction
    • Getting started: Hello world
    • User guide
      • Terminology
      • Scheduling API concepts
      • Integration
      • Constraints
      • Using the API
        • Using the OpenAPI spec
        • API tooling
      • Demo datasets
      • Input datasets
        • Model configuration
        • Model input
      • Output datasets
        • Metadata
        • Model output
        • Input metrics
        • Key performance indicators (KPIs)
      • Job types and machine types
      • Resource-specific durations
      • Freeze jobs until
      • Metrics and optimization goals
      • Score analysis
      • Validation
    • Machine and employee resource constraints
      • Machine unavailability
      • Resource transitions
      • Employee resources
    • Job service constraints
      • Time windows
      • Time management
      • Job dependencies
      • Priority jobs
      • Tags and specific resources
    • Real-time planning
    • Changelog
    • Upgrading to the latest versions
    • Feature requests

Model input

The modelInput is where you add your data about available machines and employees and the jobs to be scheduled and optimized.

The JSON shows an example modelInput. Note, most of the values are missing.

{
  "modelInput": {
    "machines": [
      {
        "id": "Machine 1"
      }
    ],
    "machineTags": [
      {
        "id": "string"
      }
    ],
    "machineTypes": [
      {
        "id": "string"
      }
    ],
    "employees": [
      {
        "id": "string"
      }
    ],
    "employeeTags": [
      {
        "id": "string"
      }
    ],
    "jobs": [
      {
        "id": "string"
      }
    ],
    "jobTypes": [
      {
        "id": "string"
      }
    ],
    "jobTransitions": [
      {
        "machineType": "string",
        "fromJobType": "string",
        "toJobType": "string",
        "duration": "string"
      }
    ],
    "resourceTransitions": [
      {
        "fromResourceId": "string",
        "toResourceId": "string",
        "reward": 0,
        "forbidden": true
      }
    ]
  }
}
  • machines includes information about the machines that jobs are assigned to, including availability and tags. See Machine and employee resource constraints for more details.

  • machineTags and machineTypes provide additional information about machines, such as their capabilities and categories. See Job types and machine types and Tags and specific resources for more details.

  • employees includes information about employees that can be assigned to jobs, including availability. See Employee resources for more details.

  • employeeTags provide additional information about employees, such as their skills. See Tags and specific resources for more details.

  • jobs includes information about the jobs to be assigned to machines and employees. See Job service constraints for more details.

  • jobTypes and jobTransitions define categories of jobs and the transition durations between job types on a given machine type. See Job types and machine types for more details.

  • resourceTransitions defines rewards or restrictions when transitioning between specific resources. See Resource transitions for more details.

Next

  • See the full API spec or try the online API.

  • Learn about the Model configuration

  • Learn about configuration parameters and profiles.

  • © 2026 Timefold BV
  • Timefold.ai
  • Documentation
  • Changelog
  • Send feedback
  • Privacy
  • Legal
    • Light mode
    • Dark mode
    • System default