This client ran old gym software with a MS / VB database. The application was for staff administration and not web enabled. However, to open some of it to the members, we added a small web addition to display the booking/availability of the gym locations.
Members could choose their location from the left menu, then see a week overview with availability marked. Members could make their own booking by clicking and confirming. No payments were needed.
The application enforced a limit to how many hours could be booked by one member, and prohibited double booking of overlapping areas (eg when the same portion of a hall might be a badminton court, or a third of a basket ball court).
I used the “ikelin” open source Jquery calendar, which was perfect for allowing the filtering of dates according to what location had been chosen.