aboutsummaryrefslogtreecommitdiffstats
path: root/calendar/gui/e-cal-model.c
diff options
context:
space:
mode:
Diffstat (limited to 'calendar/gui/e-cal-model.c')
-rw-r--r--calendar/gui/e-cal-model.c19
1 files changed, 19 insertions, 0 deletions
diff --git a/calendar/gui/e-cal-model.c b/calendar/gui/e-cal-model.c
index 3e7a826bc0..51441d8fab 100644
--- a/calendar/gui/e-cal-model.c
+++ b/calendar/gui/e-cal-model.c
@@ -2111,6 +2111,25 @@ e_cal_model_set_instance_times (ECalModelComponent *comp_data, icaltimezone *zon
if (start_time.zone)
zone = start_time.zone;
+ else {
+ icalparameter *param = NULL;
+ icalproperty *prop = icalcomponent_get_first_property (comp_data->icalcomp, ICAL_DTSTART_PROPERTY);
+
+ if (prop) {
+ param = icalproperty_get_first_parameter (prop, ICAL_TZID_PARAMETER);
+
+ if (param) {
+ const char *tzid = NULL;
+ icaltimezone *st_zone = NULL;
+
+ tzid = icalparameter_get_tzid (param);
+ e_cal_get_timezone (comp_data->client, tzid, &st_zone, NULL);
+
+ if (st_zone)
+ zone = st_zone;
+ }
+ }
+ }
comp_data->instance_start = icaltime_as_timet_with_zone (start_time, zone);