Una forma sería usar una 'tabla de calendario', o si solo está interesado en un día, una 'mesa de reloj' sería suficiente. Lo siguiente ilustra (aproximadamente) cómo lo usaría.
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 es un ejemplo de cómo crear un calendario en MySQL