Booking/Reservation system I'm about to start building out a site that requires a booking system to be setup within it. The site owner should be able to set availability (days and times with time-frames) and allow the visitors to book/reserve available services within the available time-frames and make a payment.

Any suggestions on how one might go about this? I know the request is pretty vague, just looking for some broad strokes to help me kick off in the right direction.
As far as 'setting availablity' goes, one could choose to make a 'services' section with a Matrix field that contains a DateTimeField. That way, the client can create a new Matrix Block for each available time span. The {% cache %} tag will help you in speeding this up on the frontend.

For booking, you could:


A: Make a 'bookings' section, with a related content field 'service'. Fill this section with a frontend Entry form, set post and expiry dates to the time span of the visitor's choice. You could now display a list of bookings on the frontend (behind a login), or have your client manage bookings through the CP's content tab.
B: Make a plugin to handle bookings. This would be my preferred approach.


To handle payments, you could use an existing plugin (Charge, for example) or build your own.