1. A method of programming a schedule of a controller having a user interface, the schedule having a number of schedule parameters, the method comprising the steps of: providing one or more interview questions to a user via the user interface; accepting one or more user responses to the one or more interview questions from the user via the user interface; and creating and/or modifying one or more of the schedule parameters based on the user responses provided by the user interface.