Custom calendar with a management UI.
The principle was that the calendar was auto-generated for the current month and next one or two, and customisable as it showed. Each day could be any of three colours, for open (green), booking-required (orange), and closed (red). Cycling through was done by clicking on each day when the managament UI was open. Also, on calendar generation, some initial rules were applied, e.g. weekends marked open.
At some point we moved to a wordpress-based website instead to ease management, and this went away... but it's been quite tough to find something that compared in the existing plugins!