вводим минимальную продажную единицу времени, типа 10 мин, разбиваем сутки, нумеруем, шлем клиенту список доступных,
клиент закупает единицы времени, отправляет обратно такой же список
это также решает случаи вида "час с утра и полчаса после обеда"
и не привязано к конкретным интервалам - можно "сегодня начало с 8:00, завтра с 8:20"