Have an integrated booking calendar and the ability to flag products as services, to trigger this on the product page before adding to the cart. With the booking calendar, have it add a number of spots to a day for people to register. Once they book it links to whatever service you are doing for them to pay for it. Example. If you are doing a class with 8 spots in it, the customer can click on that day on the calendar to see 8 spots available if no one has signed up. once they sign up and pay for the service it would take it down to 7 spots because they purchased an available spot.