I detect a bug with some specific timezones that dont have summer/winter time (all the year is the same time like Argentina).
That situation cause that when you select this kind of timezones, the script skips the generation of the groups DAYLIGHT and STANDAR at the ICS and this cause some incompatibilities problem with some calendars like Android (it syncs but with time problems) and Office 365 (dont sync at all, only keep the calendar empty).
I dont know how specifically to fix this, but a temporary fix that works for me was modify the file /modules/iCals/iCals.php at the function getTimeZoneString(); adding manually the code groups needed and “hidding” the conditions that generates the bug (pay attention that the -0300 value is the equivalent of your timezone, in my case GMT -3):
$ical_array[] = array(“TZOFFSETFROM”, “-0300”);
$ical_array[] = array(“TZOFFSETTO”, “-0300”);
$ical_array[] = array(“TZNAME”, “PDT”);
$ical_array[] = array(“DTSTART”, “19700101T020000”);
$ical_array[] = array(“END”, “DAYLIGHT”);
$ical_array[] = array(“BEGIN”, “STANDARD”);
$ical_array[] = array(“TZOFFSETFROM”, “-0300”);
$ical_array[] = array(“TZOFFSETTO”, “-0300”);
$ical_array[] = array(“TZNAME”, “PST”);
$ical_array[] = array(“DTSTART”, “19701101T020000”);
$ical_array[] = array(“END”, “STANDARD”);
/*
if (array_key_exists(‘start’, $dstRange))
{
$dstOffset = ($dstRange[‘start’][‘offset’] / 60);
$startDate = new DateTime("@" . $dstRange[“start”][“ts”], $gmtTZ);
$startstamp = strtotime($timedate->asDb($startDate));
$ical_array[] = array(“BEGIN”, “DAYLIGHT”);
$ical_array[] = array(“TZOFFSETFROM”, $this->convertMinsToHoursAndMins($gmtOffset));
$ical_array[] = array(“TZOFFSETTO”, $this->convertMinsToHoursAndMins($dstOffset));
$ical_array[] = array(“DTSTART”, str_replace(“Z”, “”, $this->getUtcTime($startstamp)));
$ical_array[] = array(“END”, “DAYLIGHT”);
}
if (array_key_exists('end', $dstRange))
{
$gmtOffset = ($dstRange['end']['offset'] / 60);
$endDate = new DateTime("@" . $dstRange["end"]["ts"], $gmtTZ);
$endstamp = strtotime($timedate->asDb($endDate));
$ical_array[] = array("BEGIN", "STANDARD");
$ical_array[] = array("TZOFFSETFROM", $this->convertMinsToHoursAndMins($dstOffset));
$ical_array[] = array("TZOFFSETTO", $this->convertMinsToHoursAndMins($gmtOffset));
$ical_array[] = array("DTSTART", str_replace("Z", "", $this->getUtcTime($endstamp)));
$ical_array[] = array("END", "STANDARD");
}
*/
If someone can make a better fix can be great.
Hope to help someone else