Приветствую!
Задача в общих чертах:
Календарь с возможностью бронирования услуг на определенные часы.
Сложность вызвала опция Периодичность; клиент может забронировать не разовое оказание услуг, а бронирование их на выполнение один, два, три или четыре раза в месяц. Соответственно, все эти дни (часы) не должны быть доступны для выбора другим клиентам.
Скажем так, если бронь на выполнение один раз в неделю, то проверить занятость дня в календаре можно практически одним запросом
SELECT * FROM ORDERS WHERE REPEAT LIKE '1 week' AND WEEKDAY(`date`)+1 = '{$weekday}'
А что делать с бронью на "каждые три недели" , я впал в ступор.