# timefold-quickstarts
**Repository Path**: wjgoo/timefold-quickstarts
## Basic Information
- **Project Name**: timefold-quickstarts
- **Description**: No description available
- **Primary Language**: Java
- **License**: Apache-2.0
- **Default Branch**: stable
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 0
- **Created**: 2025-12-22
- **Last Updated**: 2025-12-22
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
[](https://github.com/TimefoldAI/timefold-solver/discussions)
This repository contains quickstarts for [Timefold Solver](https://github.com/TimefoldAI/timefold-solver), an AI constraint solver for Java and Kotlin.
It shows different use cases and basic implementations to get you started on your PlanningAI journey.
## Overview
| Use Case | Notable Solver Concepts |
|-------------------------------------------------------------------------|----------------------------------------------------------|
| 🚚 Vehicle Routing | Chained Through Time, Shadow Variables |
| 🧑💼 Employee Scheduling | Load Balancing |
| 🛠️ Maintenance Scheduling | TimeGrain, Shadow Variable, Variable Listener |
| 📦 Food Packaging | Chained Through Time, Shadow Variables, Pinning |
| 🛒 Order Picking | Chained Planning Variable, Shadow Variables |
| 🏫 School Timetabling | Timeslot |
| 🏭 Facility Location Problem | Shadow Variable |
| 🎤 Conference Scheduling | Timeslot, Justifications |
| 🛏️ Bed Allocation Scheduling | Allows Unassigned |
| 🛫 Flight Crew Scheduling | |
| 👥 Meeting Scheduling | TimeGrain |
| ✅ Task Assigning | Bendable Score, Chained Through Time, Allows Unassigned |
| 📆 Project Job Scheduling | Shadow Variables, Variable Listener, Strenght Comparator |
| 🏆 Sports League Scheduling | Consecutive Sequences |
| 🏅 Tournament Scheduling | Pinning, Load Balancing |
> [!NOTE]
> The implementations in this repository serve as a starting point and/or inspiration when creating your own application.
> Timefold Solver is a library and does not include a UI. To illustrate these use cases a rudimentary UI is included in these quickstarts.
## Use cases
### 🚚 Vehicle Routing
Find the most efficient routes for vehicles to reach visits, considering vehicle capacity and time windows when visits are available. Sometimes also called "CVRPTW".

- [Run quarkus-vehicle-routing](java/vehicle-routing/README.MD) (Java, Maven, Quarkus)
> [!TIP]
>
[Check out our off-the-shelf model for Field Service Routing](https://app.timefold.ai/models/field-service-routing). This model goes beyond basic Vehicle Routing and supports additional constraints such as priorities, skills, fairness and more.
---
### 🧑💼 Employee Scheduling
Schedule shifts to employees, accounting for employee availability and shift skill requirements.

- [Run quarkus-employee-scheduling](java/employee-scheduling/README.MD) (Java, Maven, Quarkus)
> [!TIP]
>
[Check out our off-the-shelf model for Employee Shift Scheduling](https://app.timefold.ai/models/employee-scheduling). This model supports many additional constraints such as skills, pairing employees, fairness and more.
---
### 🛠️ Maintenance Scheduling
Schedule maintenance jobs to crews over time to reduce both premature and overdue maintenance.

- [Run quarkus-maintenance-scheduling](java/maintenance-scheduling/README.adoc) (Java, Maven, Quarkus)
---
### 📦 Food Packaging
Schedule food packaging orders to manufacturing lines to minimize downtime and fulfill all orders on time.

- [Run quarkus-food-packaging](java/food-packaging/README.adoc) (Java, Maven, Quarkus)
---
### 🛒 Order Picking
Generate an optimal picking plan for completing a set of orders.

- [Run quarkus-order-picking](java/order-picking/README.adoc) (Java, Maven, Quarkus)
---
### 🏫 School Timetabling
Assign lessons to timeslots and rooms to produce a better schedule for teachers and students.

- [Run quarkus-school-timetabling](java/school-timetabling/README.adoc) (Java, Maven or Gradle, Quarkus)
- [Run spring-boot-school-timetabling](java/spring-boot-integration/README.adoc) (Java, Maven or Gradle, Spring Boot)
- [Run kotlin-quarkus-school-timetabling](kotlin/school-timetabling/README.adoc) (Kotlin, Maven, Quarkus)
Without a UI:
- [Run hello-world-school-timetabling](java/hello-world/README.adoc) (Java, Maven or Gradle)
---
### 🏭 Facility Location Problem
Pick the best geographical locations for new stores, distribution centers, COVID test centers, or telecom masts.

- [Run quarkus-facility-location](java/facility-location/README.adoc) (Java, Maven, Quarkus)
---
### 🎤 Conference Scheduling
Assign conference talks to timeslots and rooms to produce a better schedule for speakers.

- [Run quarkus-conference-scheduling](java/conference-scheduling/README.adoc) (Java, Maven, Quarkus)
---
### 🛏️ Bed Allocation Scheduling
Assign beds to patient stays to produce a better schedule for hospitals.

- [Run quarkus-bed-allocation-scheduling](java/bed-allocation/README.adoc) (Java, Maven, Quarkus)
---
### 🛫 Flight Crew Scheduling
Assign crew to flights to produce a better schedule for flight assignments.

- [Run quarkus-flight-crew-scheduling](java/flight-crew-scheduling/README.adoc) (Java, Maven, Quarkus)
---
### 👥 Meeting Scheduling
Assign timeslots and rooms for meetings to produce a better schedule.

- [Run quarkus-meeting-scheduling](java/meeting-scheduling/README.adoc) (Java, Maven, Quarkus)
---
### ✅ Task Assigning
Assign employees to tasks to produce a better plan for task assignments.

- [Run quarkus-task-assigning](java/task-assigning/README.adoc) (Java, Maven, Quarkus)
---
### 📆 Project Job Scheduling
Assign jobs for execution to produce a better schedule for project job allocations.

- [Run quarkus-project-job-scheduling](java/project-job-scheduling/README.adoc) (Java, Maven, Quarkus)
---
### 🏆 Sports League Scheduling
Assign rounds to matches to produce a better schedule for league matches.

- [Run quarkus-sports-league-scheduling](java/sports-league-scheduling/README.adoc) (Java, Maven, Quarkus)
---
### 🏅 Tournament Scheduling
Tournament Scheduling service assigning teams to tournament matches.

- [Run quarkus-tournament-scheduling](java/tournament-scheduling/README.adoc) (Java, Maven, Quarkus)
---
## Legal notice
Timefold Quickstarts was [forked](https://timefold.ai/blog/2023/optaplanner-fork/) on 20 April 2023 from OptaPlanner Quickstarts, which was entirely Apache-2.0 licensed (a permissive license).
Timefold Quickstarts is a derivative work of OptaPlanner Quickstarts, which includes copyrights of the original creator, Red Hat Inc., affiliates, and contributors, that were all entirely licensed under the Apache-2.0 license.
Every source file has been modified.