Preso direttamente da freephp, l'unica cosa ho modificato la lingua perché prima era tutto in inglese. Bastava comunque cercare un pochino
http://freephp.html.it/script/lista.asp?idcat=16 
codice:
<html>
<head>
<title>Calendario</title>
</head>
<body>
<?
define ('ADAY', (60*60*24));
$datearray = getdate();
$month = $datearray['mon'];
$year = $datearray['year'];
$start = mktime(0,0,0,$month,1,$year);
//echo $start;
$firstdayarray = getdate($start);
//echo $firstdayarray['mon'];
$months = Array('Gennaio','Febbraio','Marzo','Apri
le','Maggio','Giugno','Luglio','Agosto',
'Settembre','Ottobre','Novembra','Dicemb
re');
$days = Array('Dom','Lun','Mar','Mer','Gio','Ven
','Sab');
?>
<table border=1 cellpadding=1 bordercolor="000000" cellspacing="0" align="center">
<tr>
<td colspan="7" bordercolor="ffffff">
<div align="center"><font color="#000066"><font face="Verdana, Arial, Helvetica, sans-serif" size="2">
<? echo $months[$month-1]." ".$year ;?>
</font></font></div>
</td>
</tr>
<?
foreach($days as $day)
{
?>
<td bordercolor="ffffff">
<div align="center"><font color="#000066"><font face="Verdana, Arial, Helvetica, sans-serif" size="1">
<? echo"$day";?>
</font></font></div>
</td>
<?
}
for( $count=0;$count<(6*7);$count++)
{
$dayarray = getdate($start);
if((($count) % 7) == 0)
{
if($dayarray['mon'] != $datearray['mon'])
break;
echo "</tr><tr>";
}
if($count < $firstdayarray['wday'] || $dayarray['mon'] != $month)
{
echo "<td bordercolor=ffffff>
</td>";
}
else
{
if($dayarray['mday'] == $datearray['mday'])
{
$var = date('d/m/Y');
?>
<td bordercolor="#FF0000">
<div align="center"><font face="Verdana, Arial, Helvetica, sans-serif" size="1">
<? echo $dayarray[mday]; ?>
</font></div>
</td>
<?
$start += ADAY;
}
else
{
?>
<td bordercolor="ffffff">
<div align="center" class="content"><font face="Verdana, Arial, Helvetica, sans-serif" size="1">
<? echo $dayarray[mday]; ?>
</font></div>
</td>
<?
$start += ADAY;
}
}
}
?>
</tr>
</table>
</body>
</html>
bye