scusa, se già sai quali giorni devono avere un determinato colore non basterebbe eseguire una serie di controlli tipo:

Codice PHP:
if (($data >= $row_calendario['giorno_inizio']) && ($row_calendario['giorno_fine'] >= $data)) { print "<td style='background-color: #f00; color: #FFFFFF; text-align: center'>".$i."</td>"; } 
ovviamente così è condizionato a molte istruzioni e soprattutto all'estrazione della riga nel db del periodo di tempo interessato.

Altrimenti potresti aggiungere direttamente un campo alla tabella tipo: colore, dove ci registri il codice del colore corrispondende al periodo di tempo che sta sulla stessa linea, così è ancora più semplice e veloce capire che colore assegnare al campo.