Are you wanting to draw schedules or calculate them? Calculating schedules is a model problem within the logic programming community - a language like Oz might be better suited to the task than Haskell (Oz having more developed infrastructure and literature in this area).