I am looking for a PHP class that can parse an ICalendar (ICS) file and correctly handle timezones.
I already created an ICS parser myself but it can only handle timezones known to PHP (like 'Europe/Paris').
Unfortunately, ICS file generated by Evolution (default calendar software of Ubuntu) does not use default timezone IDs. It exports events with its a specific timezone ID exporting also the full definition of the timezone: daylight saving dates, recurrence rule and all the hard stuff to understand about timezones.
This is too much for me. Since it was only a small utility for my girlfriend, I won't have time to investigate further the ICalendar specification and create a full blown ICalendar parser myself.
So is there any known implementation in PHP of ICalendar file format that can parse timezones definitions?
Most likely there are a lot of libraries that parse .ics files, but I'll show you one example that works for me quite well.
I've used this library: http://www.phpclasses.org/browse/file/16660.html
It gives you a lot of flexibility in handling different types of ICal components: VEVENT, VTODO, VJOURNAL, VFREEBUSY, VALARM, and VTIMEZONE (the one you were asking about).
Example: