diff --git a/cis/private/lvplan/stpl_kalender.php b/cis/private/lvplan/stpl_kalender.php index e2c4c24ad..e78627086 100644 --- a/cis/private/lvplan/stpl_kalender.php +++ b/cis/private/lvplan/stpl_kalender.php @@ -133,6 +133,24 @@ elseif($format=='ical') header("Pragma: public"); header("Expires: 0"); echo 'BEGIN:VCALENDAR'.$crlf.'VERSION:'.$version.'.0'.$crlf.'PRODID:'.CAMPUS_NAME; + echo ' +BEGIN:VTIMEZONE +TZID:Europe/Vienna +BEGIN:DAYLIGHT +TZOFFSETFROM:+0100 +RRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=-1SU +DTSTART:19810329T020000 +TZNAME:GMT+02:00 +TZOFFSETTO:+0200 +END:DAYLIGHT +BEGIN:STANDARD +TZOFFSETFROM:+0200 +RRULE:FREQ=YEARLY;BYMONTH=10;BYDAY=-1SU +DTSTART:19961027T030000 +TZNAME:GMT+01:00 +TZOFFSETTO:+0100 +END:STANDARD +END:VTIMEZONE'; } // Print in HTML-File else diff --git a/include/wochenplan.class.php b/include/wochenplan.class.php index 36d34f315..76da1a2bf 100644 --- a/include/wochenplan.class.php +++ b/include/wochenplan.class.php @@ -2126,21 +2126,20 @@ class wochenplan extends basis_db $sta = explode(":",$start_time); //sta start time array $eda = explode(".",$end_date); //eda end date array $eta = explode(":",$end_time); //eta end time array - - //Der Zusatz "Z" am Ende legt fest, dass es sich um die Zeitzone UTC handelt - //deshalb werden 2 Stunden von der Zeit abgezogen. + //Die Zeitzone muss angegeben werden, da sonst der Google Kalender die Endzeiten nicht richtig erkennt - $start_date_time_ical = $sda[2].$sda[1].$sda[0].'T'.sprintf('%02s',($sta[0]-2)).$sta[1].$sta[2].'Z'; //neu gruppieren der Startzeit und des Startdatums - $end_date_time_ical = $eda[2].$eda[1].$eda[0].'T'.sprintf('%02s',($eta[0]-2)).$eta[1].$eta[2].'Z'; //neu gruppieren der Startzeit und des Startdatums - + // diese wird in stpl_kalender global definiert und bei den Start und Ende Zeiten mitangegeben + $start_date_time_ical = $sda[2].$sda[1].$sda[0].'T'.sprintf('%02s',($sta[0])).$sta[1].$sta[2]; //neu gruppieren der Startzeit und des Startdatums + $end_date_time_ical = $eda[2].$eda[1].$eda[0].'T'.sprintf('%02s',($eta[0])).$eta[1].$eta[2]; //neu gruppieren der Startzeit und des Startdatums + echo $this->crlf.'BEGIN:VEVENT'.$this->crlf .'UID:'.'FH'.$lvb.$this->std_plan[$i][$j][$idx]->ort.$this->std_plan[$i][$j][$idx]->lektor.$lehrfach[$idx].$start_date_time_ical.$this->crlf .'SUMMARY:'.$lehrfach[$idx].' '.$this->std_plan[$i][$j][$idx]->ort.' - '.$lvb.$this->crlf .'DESCRIPTION:'.$lehrfach[$idx].'\n'.$this->std_plan[$i][$j][$idx]->lektor.'\n'.$lvb.'\n'.$this->std_plan[$i][$j][$idx]->ort.$this->crlf .'LOCATION:'.$this->std_plan[$i][$j][$idx]->ort.$this->crlf .'CATEGORIES:'.$lvplan_kategorie.$this->crlf - .'DTSTART:'.$start_date_time_ical.$this->crlf - .'DTEND:'.$end_date_time_ical.$this->crlf + .'DTSTART;TZID=Europe/Vienna:'.$start_date_time_ical.$this->crlf + .'DTEND;TZID=Europe/Vienna:'.$end_date_time_ical.$this->crlf .'END:VEVENT'; } else