diff --git a/ActiveSync/iCalTimeZone+ActiveSync.m b/ActiveSync/iCalTimeZone+ActiveSync.m index 117c0c06d..e92fc6732 100644 --- a/ActiveSync/iCalTimeZone+ActiveSync.m +++ b/ActiveSync/iCalTimeZone+ActiveSync.m @@ -83,10 +83,28 @@ struct SYSTEMTIME { tzData->wDay = ([mask firstOccurrence] == -1) ? 5 : [mask firstOccurrence]; dateValue = [self startDate]; - tzData->wHour = [dateValue hourOfDay]; - tzData->wMinute = [dateValue minuteOfHour]; - tzData->wSecond = [dateValue secondOfMinute]; - tzData->wMilliseconds = 0; + + if (![dateValue hourOfDay]) + { + if ([mask firstDay]-1 < 0) + tzData->wDayOfWeek = 6; + else + tzData->wDayOfWeek = [mask firstDay]-1; + + tzData->wHour = 23; + tzData->wMinute = 59; + tzData->wSecond = 59; + tzData->wMilliseconds = 999; + } + else + { + tzData->wDayOfWeek = [mask firstDay]; + + tzData->wHour = [dateValue hourOfDay]; + tzData->wMinute = [dateValue minuteOfHour]; + tzData->wSecond = [dateValue secondOfMinute]; + tzData->wMilliseconds = 0; + } } } diff --git a/NEWS b/NEWS index 1cbf5e0f3..e07dc93b2 100644 --- a/NEWS +++ b/NEWS @@ -6,6 +6,7 @@ Bug fixes - [eas] fix search on for Outlook application (#4605 and #4607) - [eas] better handle bogus DTStart values - [eas] support for basic UserInformation queries (#4614) + - [eas] better handle timezone changes (#4624) 4.0.1 (2018-07-10) ------------------