So what's confusing to me is the fact that there's no way to set availability based on time period e.g. 10:30, 11:30 etc. How do you plan on addressing appointment overlapping? Also, I think it would deter a lot of customers if they had to sign up and register just to book an appointment. Other than that I want to say it looks very nice and you were 100% right, we're solving different problems here haha!
Honestly I don't plan on taking my app any further than single user appointment booking, possibly adding the ability to have multiple employees you can choose to book with. But once I'm done I would very much like to collaborate and adapt my code for your TIMESLOT strategy :), I came on github looking for collab experience so this seems like a great opportunity.
BTW, my client is a Car Repair garage, but the difference is they always receive the cars at 8am and have a maximum storage/reception capacity for each service. Thats why you see timegrid operating that way. I'll open a branch for implementing the timeslot strategy.