Rewrite schedule page to be able to work with the updated API interface, & some cleanup