One of our customers had a requirement where they want a booking to be scheduled only at the start of an hour i.e. a booking can be scheduled at 2PM or 3PM but not at 2:30 PM.
On searching for a solution, we found out a very easy OOB solution which is called Time resolution.
It’s a setting on the schedule board which allows the booking to be created in an interval of minutes (1 to 60). Once we set this to 60, the User would just see 1PM, 2PM etc while dragging and dropping the Resource requirement on the schedule board.
Now this is going to just restrict the booking when dragged and dropped on the schedule board.
We also created booking rules to put some additional checks which work on the schedule board and finally a plugin on create of a booking which takes care if booking is created manually.