Abstract. Hospitals must be staffed 24 hours a day, seven days a week by teams of doctors having certain combinations of skills. The construction of schedules for these doctors and the medical students who work with them is known to be a difficult NP-complete problem known as personnel scheduling, employee timetabling, labour scheduling or rostering. We have constructed a program that uses a constraint logic formalism to enforce certain scheduling rules followed by a tabu search heuristic optimizing algorithm to produce a call schedule that is used at the Ottawa Hospital. This call schedule can be later changed by the chief resident to accommodate last-minute personnel changes by means of a spreadsheetbased program.