Un modo sarebbe usare una "tabella del calendario", o se sei interessato solo a un giorno, una "tabella dell'orologio" farebbe. Quanto segue illustra (approssimativamente) come lo useresti.
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 è un esempio di come creare un calendario in MySQL