Let's say there are 10 nurses who work a total of 40 hours a week, and we need to allocate their time in a 7 days schedule based on various constraints such as:

  • Nobody should work more than 5 days in a row
  • If someone worked on a Sunday one week, they shouldn't work again on Sunday the next week
  • It shouldn't always be the same nurses who work in the evening
  • etc.

Is there a software that would allow me to enter these constraints and automatically output some kind of calendar/schedule?

(Preferably open source or free, any OS is fine, online or desktop is fine.)

  • There's plenty of scheduling software around. Which ones do not meet your requirements? Also, what OS (or online), what price? Please edit your question. – user416 Nov 26 '14 at 14:08
  • @JanDoggen, preferably open source or free, any OS is fine, online or desktop is fine. There's plenty of scheduling software but I'm looking for one that can automate the task I've described above. – laurent Nov 26 '14 at 14:11
  • I asked you to edit your question. All the relevant information should be in there. And describe what you mean with automation. – user416 Nov 26 '14 at 14:12
  • This is the classical nurse scheduling problem. See en.wikipedia.org/wiki/Nurse_scheduling_problem. Is this homework? – user16583 Nov 27 '14 at 15:00
  • @user16583, no it's not, I'm actually surprised to see it's a well known problem (and apparently not a simple one). – laurent Nov 27 '14 at 16:05

See the Employee Rostering page's video's of OptaPlanner (open source, java). Ironically, those constraints that you mention are implemented in the old Nurse Rostering example with ugly Swing UI (which works!), but not yet in the new beautiful optaweb-employee-rostering web application.

In any case, these are examples/templates, so you'd likely need to do some programming to customize it truly to your needs...

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.