Look fine, just two things:
if ($cal_date==$row[date])
in this case the 'date' in $row[date] is a string, so it must be quoted, otherwise PHP will thing it is a constant:
if ($cal_date==$row['date'])
and you put:
<br>($row[description]) </td>
again, description should be quoted, but more importantly the $row[description] should not be inside the string. It is better to place it outside the string an concatenate it:
<br>".($row['description'].") </td>
And a sidenote: try to keep your code readable, always move to a new line after opening or closing a { or } tag:
while ($row = mysql_fetch_array($result))
{
if ($cal_date==$row['date'])
{
print "<td class='tcell' bgcolor=#CCCCCC valign=\"top\" height=\"100\">".$d."<br><br><br><br>(".$row['description'].") </td>";
}
else
{
print "<td class='tcell' bgcolor=#CCCCCC valign=\"top\" height=\"100\">".$d."</td>";
}
}