Incomplete - Schedule fixes

Creating this ticket to aggregate the recent schedule changes & outline remaining to-dos.

Outstanding stuff:
- [ ] In the JS, check that server errors return as expected
- [ ] When things go wrong & could be out of sync, force refresh or hide data table
- [ ] Update totals row
- [x] Tests
- [ ] Make stuff faster!