Nicely done! I had to make a couple changes:
1) I put a "if (ICS_DEBUG)" before the echos in ICS_ErrorHandle. It had some heartburn with my iCal-published calendar.
2) Mac OSX Leopard's php wasn't compiled with the calendar options, I guess, so I substituted this function for the call to cal_days_in_month (which I found somewhere on the web):
function days_in_month($month, $year)
{
if(checkdate($month, 31, $year)) return 31;
if(checkdate($month, 30, $year)) return 30;
if(checkdate($month, 29, $year)) return 29;
if(checkdate($month, 28, $year)) return 28;
return 0; // error
}
Thanks for the hard work! If you'd like to look at the calendar entries it was complaining about, you can email me: username is mark, domain name is mmalson.com.
You should host iCal PHP Interface on github to get better exposure.
Tried a couple others but this one did exactly what I needed it to. Thanks!