It's weird because this is a common and difficult problem. Yet finding a package for this is hard. What do you google for: 'Calendar'? Nope. That's not what you want. (well it's helpful but you really need the hard part -- the timeslot manager.).
my thoughts on this are:
- you have a set number of timeslots (in a db or in a file).
- for each period (day, week or whatever). you have a dataset of unavailable (or the inverse) timeslots.
- each time a timeslot is booked, you updated the dataset of unavailable slots.
so the usage becomes:
- given a request for a timeslot in a specified period
- then you query the list of unavailable slots (for a used slot matching the request)
- if you find a used slot. then go fish (or suggest alternates)
- otherwise book it.
the idea of the set number of timeslots makes sense to me (rather than being dynamic) is that the fixed system is much easier to do. This is how reservation systems work for restaurants etc. They have 6:00 seatings, 7:30 etc.
just rambling. maybe I'll make a package