Move ScheduleView to own file and fix minor bugs

[ci skip]