No me cabe ninguna duda de que es consciente de que este tipo de desarrollos deben contemplar una casuística e implementar una lógica de cálculo que debe ser realizada por un programador, más que con conocimentos en sí (que también), con un "sentido común" que solo pueden ofrecer los "viejos rockeros".
Aunque suene "oportuno", le puedo indicar que en mis 30 años de desempeño profesional he desarrollndo proyectos relacionados con horarios, controles de E/S (obras), optimizaciones de carga, de corte de materiales, ... en los que la "matemática/algoritmia" es fundamental.
En un sistema de reservas no solo hay que implementar la funcionalidad obvia sino que además hay que contemplar otra serie de aspectos para conseguir que sea práctica: se me ocurre:
-control de reasignaciones (por cancelación, falta de cupo, ...) y sus notificaciones a usuarios, -lista de espera (para reacomodaciones si se requieren),
-sugerencias a usuarios (huecos libres),
-etc...
Otra de las cosas importantes es que toda la "condicionalidad" de tiempos/reservas/... debe ser completamente configurable.
La parte "friendly" del diseño. Este se debe acomodar a personas profanas de manera que se le procure unas guías para fácil localización de servicios, ...
SKP?
Saludos.
NOTA: He tenido que resscribir el texto para indicarle que en uno de mis desarrollos utilicé una lógica de reservas como la que usted necesita. Era para reservas de pista (karting) para organización de carreras entre particulares.