Block past timeslots
Past timeslots are only blocked for unauthenticated users so staff can still enter missing entries after the fact.
This is only a UI restriction, there is no server side validation for these blocks. I think this is better because the list of valid timeslots depends on the current time. For example, I wanted to make sure that a timeslot that is valid when I get the form but no longer valid once I submit it would still be accepted.
Users can configure a "Minimum required time between booking and appointment" for each schedule.