For some reason I’ve not yet figured out, both Mozilla calendar and Sunbird appear to display appointments at completely different times to what they write them as in the .ics file – I’ve just spent 15 mins hand editing the .ics file to make PHP iCalendar display the calendar correctly.
I never had this problem with iCal…
It appears that for some appointments, Mozilla Sunbird had added a ‘Z’ to the end of the date and time of some of the appointments in the .ics file, which was being treated differently by PHP iCalendar and the Mozilla apps. – Delete the ‘Z’ from the end of the line, and everything works :-/