a "logica" è molto semplice:
GD
tabella- crei 24 quadrati da x*x pixel, ogni quadrato ha un colore rosso o verde a seconda della disponibilità inquell'ora
unisci tutti i quadrati generati in un'unica immagine
css- crei 24 celle il cui sfondo è rosso o verde a seconda della disponibilità
Ovviamente, se vuoi un dettaglio maggiore dell'ora lo fai in 48 (30 min) o 96 (15 min) quadrati- crei 24 div la cui classe css è .rosso o .verde nella cui classe hai specificato le proprietà grafiche