Weird, because before this check was introduced this morning, Konsole reported 8 colours, but rendered your git-cal correctly, using more than 8.
[1] The proper way is to use terminfo to output the escape sequences for you. See http://perldoc.perl.org/Term/Cap.html for how to do this with standard Perl. EDIT: I can't get this to work—Seems Perl has poor terminfo support. :-( "tput setaf 10" is the correct way from sh.