Jednym ze sposobów byłoby użycie „tabeli kalendarza” lub, jeśli interesuje Cię tylko jeden dzień, wystarczy „stół z zegarem”. Poniższe ilustruje (w przybliżeniu), jak możesz go używać.
SELECT clock.time AS available
FROM clock
LEFT JOIN bookings ON clock.time BETWEEN bookings.from AND bookings.to
AND bookings.date = '2013-01-01'
WHERE bookings.id IS NULL
http://www.brianshowalter.com/calendar_tables jest przykładem jak stworzyć kalendarz w MySQL