Index: src/libical/icalcomponent.c =================================================================== RCS file: /cvsroot/freeassociation/libical/src/libical/icalcomponent.c,v retrieving revision 1.62 diff -u -r1.62 icalcomponent.c --- src/libical/icalcomponent.c 15 Jan 2008 23:17:40 -0000 1.62 +++ src/libical/icalcomponent.c 29 Jan 2008 02:10:07 -0000 @@ -1524,6 +1524,8 @@ * * FIXME this is useless until we can flag the failure */ +/* The other version of this function seems to handle VEVENTS that don't have + * VTIMEZONE declarations locally, but are referenced in the parent static struct icaltimetype icalcomponent_get_datetime(icalcomponent *comp, icalproperty *prop) { @@ -1544,7 +1546,7 @@ return ret; } -/* TODO: which one is the right one? this is EDS +*/ static struct icaltimetype icalcomponent_get_datetime(icalcomponent *comp, icalproperty *prop) { @@ -1574,7 +1576,7 @@ return ret; } -*/ + /** @brief Get DTSTART property as an icaltime * * If DTSTART is a DATE-TIME with a timezone parameter and a Index: src/libical/icaltime.c =================================================================== RCS file: /cvsroot/freeassociation/libical/src/libical/icaltime.c,v retrieving revision 1.70 diff -u -r1.70 icaltime.c --- src/libical/icaltime.c 15 Jan 2008 23:17:42 -0000 1.70 +++ src/libical/icaltime.c 29 Jan 2008 02:10:07 -0000 @@ -1102,7 +1102,7 @@ span.is_busy = is_busy; span.start = icaltime_as_timet_with_zone(dtstart, - icaltimezone_get_utc_timezone()); + dtstart.zone ? dtstart.zone : icaltimezone_get_utc_timezone()); if (icaltime_is_null_time(dtend)) { if (!icaltime_is_date(dtstart)) { @@ -1115,7 +1115,7 @@ } } - span.end = icaltime_as_timet_with_zone(dtend, icaltimezone_get_utc_timezone()); + span.end = icaltime_as_timet_with_zone(dtend, dtend.zone ? dtend.zone : icaltimezone_get_utc_timezone()); if (icaltime_is_date(dtstart)) { /* no time specified, go until the end of the day..*/