Avoiding double-booked teachers is the minimum. A timetable that does only that can still put Mathematics in the first period every day, which no one enjoys and few students learn well from.
Spread a subject across the week
Give each subject different days and different times of day. A class that meets the same subject at the same hour all week has no second chance when that hour goes badly.
Keep doubles together
A double period only helps if the two periods are consecutive on the clock. Periods four and five with lunch between them are not a double.
Treat preferences as costs, not rules
A teacher who prefers mornings, or a laboratory that is free only on some days, should be weighed, not obeyed blindly. When a preference cannot be met, the schedule should say so and leave the decision to a person.