Timetabling it is a very complicated task. Algorithms, solving it are very complex, due the (usually) large number of restrictions to be accomplished.
There are a large number of software applications used for solving the task: Do you have any experience using them? Which one is the best, if any, among them? Can you share the reasons you have for your choice?