Add some testing!

And implement the schedule parsing.

Schedule parsing was WAY harder than I expected.