I had the exact same issue for one of the sites I manage. I found that the SQL query did not seem to work correctly for all configurations of mysql. It worked fine on my local box, but not on the mysql installation on my web host. I have no idea what the differences between installation were, but slightly modifying the SQL query beginning on line 107 of the functions.inc file of the Calendar plugin seemed to work. The line I changed was this:
Text Formatted Code
$eventSql = 'SELECT eid,title,url,datestart,dateend,group_id,owner_id,perm_owner,perm_group,perm_members,perm_anon '
. "FROM {$_TABLES['events']} "
. "WHERE dateend >= NOW() AND (TO_DAYS(datestart) - TO_DAYS(NOW()) < $range) "
. 'ORDER BY datestart,timestart';
Text Formatted Code
$eventSql = 'SELECT eid,title,url,datestart,dateend,group_id,owner_id,perm_owner,perm_group,perm_members,perm_anon '
. "FROM {$_TABLES['events']} "
. "WHERE dateend >= CURDATE() AND (TO_DAYS(datestart) - TO_DAYS(NOW()) < $range) "
. 'ORDER BY datestart,timestart';
Essentially, the only modification is changing the first NOW() on the 3rd line to a CURDATE()