Ett sätt skulle vara att använda ett "kalenderbord", eller om du bara är intresserad av en dag skulle ett "klockbord" duga. Följande illustrerar (ungefär) hur du skulle använda det.
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 är ett exempel på hur man skapar en kalender i MySQL