The job-shop scheduling problem was considered with sequence-dependent setup times and preventive maintenance constraints. A hybrid model combining discrete-event simulation and an optimization algorithm in Python was applied to simulate the production process and solve the job-shop problem.