Я думаю, вы должны расширить класс QCalendar и добавить немного поведения!
Я нашел здесь кое-что: http://www.qtforum.org/article/21614/paintcell-and-qcalendarwidget.html#post79008
Как видно из примера, вы можете использовать что-то вроде:
QBrush brush;
brush.setColor( Qt::green );
QTextCharFormat cf = calendarWidget->dateTextFormat( date );
cf.setBackground( brush );
calendarWidget->setDateTextFormat( date, cf );
Надеюсь, это немного поможет!