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

Pick-up and Delivery Routing

    • Introduction
    • Getting started: Hello world
    • User guide
      • Terminology
      • Use case guide
      • Planning AI concepts
      • Integration
      • Constraints
      • Understanding the API
      • Demo datasets
      • Input datasets
        • Model configuration
        • Model input
        • Planning window
      • Input validation
      • Output datasets
        • Metadata
        • Model output
        • Input metrics
        • Key performance indicators (KPIs)
      • Routing with Timefold’s maps service
      • Metrics and optimization goals
    • Driver resource constraints
      • Lunch breaks and personal appointments
      • Route optimization
      • Shift hours and overtime
    • Job service constraints
      • Time windows and opening hours
      • Skills
      • Movable stops and multi-day schedules
      • Dependencies between stops
      • Priority jobs and optional jobs
      • Stop service level agreement (SLA)
      • Job requirements and tags
        • Job required drivers
        • Job pooling
        • Prohibit job combinations
        • Maximum time burden
        • Driver capacity
        • Tags
    • Recommendations
      • Job time window recommendations
      • Stop time window recommendations
    • Real-time planning
      • Real-time planning: pinning stops
    • Changelog
    • Upgrading to the latest versions
    • Feature requests

Model input

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

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

{
  "modelInput": {
    "drivers": [
      {
        "id": "Beth"
      }
    ],
    "jobs": [
      {
        "id": "Job A"
      }
    ],
    "planningWindow": {
      "startDate": "2022-03-10T12:15:50-04:00",
      "endDate": "2022-03-10T12:15:50-04:00"
    },
    "priorityWeights": [
      {
        "priority": "HIGH",
        "weight": 10000
      }
    ]
  }
}
  • drivers contains information about the drivers and the shifts they work. See Driver resource constraints for more details.

  • jobs contains information about the jobs that need to be performed. See Job service constraints for more details.

  • planningWindow is the period of time the schedule is being planned for. See Planning window for more details.

  • priorityWeights lets you define custom priorities to be assigned to jobs. See Priority jobs and optional jobs for more details.

Next

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

  • Learn about the Model input.

  • Learn about configuration parameters and profiles.

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