iCal verlinken
iCal verlinken
Hallo,
man kann ja aus dem Terminkalender iCal Termine downloaden (exportieren). In der Beschreibung der Termineinstellungen in den Organisationseinstellungen steht auch was von einem "Abo".
Was ist damit gemeint? Gibt es das auch?
Was ich mir wünschen würde wäre ein dynamischer iCal Kalender (also nicht zum importieren sondern verlinkt). Ich selbst habe das schon einmal realisiert. Dabei braucht man dann z.B. im Google Kalender nur mehr einmal den link anzugeben (über URL hinzufügen) und es wird automatisch jeder neue Termin im Google Kalender angezeigt. Der link liefert die iCal Daten dabei dynamisch.
Welche Termine und über welchen Zeitraum lässt sich dann leicht mit Url-Parametern steuern.
Hier die Beschreibung von dem was ich meine: http://forum.noettv.info/viewtopic.php?f=14&t=84
man kann ja aus dem Terminkalender iCal Termine downloaden (exportieren). In der Beschreibung der Termineinstellungen in den Organisationseinstellungen steht auch was von einem "Abo".
Was ist damit gemeint? Gibt es das auch?
Was ich mir wünschen würde wäre ein dynamischer iCal Kalender (also nicht zum importieren sondern verlinkt). Ich selbst habe das schon einmal realisiert. Dabei braucht man dann z.B. im Google Kalender nur mehr einmal den link anzugeben (über URL hinzufügen) und es wird automatisch jeder neue Termin im Google Kalender angezeigt. Der link liefert die iCal Daten dabei dynamisch.
Welche Termine und über welchen Zeitraum lässt sich dann leicht mit Url-Parametern steuern.
Hier die Beschreibung von dem was ich meine: http://forum.noettv.info/viewtopic.php?f=14&t=84
Re: iCal verlinken
Hallo Dieter,
das funktioniert mit Admidio (nur nicht mit Zeitrahmen). Wenn Du oben bei der Kalenderauswahl einen Rechtsklick auf das Icon machst und Dir die Linkadresse kopierst.
z.B.: http://demo.admidio.org/adm_program/mod ... p?cat_id=0
Voraussetzung ist nur, dass die Termine öffentlich sind. Den Zeitrahmen kann man in den Einstellungen festlegen.
Gruß Jochen
das funktioniert mit Admidio (nur nicht mit Zeitrahmen). Wenn Du oben bei der Kalenderauswahl einen Rechtsklick auf das Icon machst und Dir die Linkadresse kopierst.
z.B.: http://demo.admidio.org/adm_program/mod ... p?cat_id=0
Voraussetzung ist nur, dass die Termine öffentlich sind. Den Zeitrahmen kann man in den Einstellungen festlegen.
Gruß Jochen
Re: iCal verlinken
o.k. danke!
edit: Funktioniert!
edit: Funktioniert!
Re: iCal verlinken
Hallo zusammen
mit Spannung habe ich die Antworten auf Dieters Frage erwartet. In der Tat funktioniert das Hinzufügen des Admidiokalenders über die URL. Jedoch habe ich euren Zusatz über die Zeitzone noch nicht ganz richtig verstanden. Wenn ich einen Admdiokalender nun zu Google hinzufüge, habe ich immer GMT (+0) ohne Sommerzeit als Zeitformat und bin somit mit meinen Termine 2 Stunden zu weit in der Zukunft. Jochens Hinweis auf das Ändern dieser Zeitzone in den Einstellungen konnte ich noch nicht finden. Die Kalenderzeitzone scheint in den Kalendereinstellungen fest eingestellt und unveränderlich zu sein. Wie kann ich dieses korrigieren, sodass die korrekte Zeitzone angewandt wird, ähnlich wie wenn ich mir das iCal selbst downloade und importiere?
Vielen Dank für eure Hilfe
Gruß, Offe
mit Spannung habe ich die Antworten auf Dieters Frage erwartet. In der Tat funktioniert das Hinzufügen des Admidiokalenders über die URL. Jedoch habe ich euren Zusatz über die Zeitzone noch nicht ganz richtig verstanden. Wenn ich einen Admdiokalender nun zu Google hinzufüge, habe ich immer GMT (+0) ohne Sommerzeit als Zeitformat und bin somit mit meinen Termine 2 Stunden zu weit in der Zukunft. Jochens Hinweis auf das Ändern dieser Zeitzone in den Einstellungen konnte ich noch nicht finden. Die Kalenderzeitzone scheint in den Kalendereinstellungen fest eingestellt und unveränderlich zu sein. Wie kann ich dieses korrigieren, sodass die korrekte Zeitzone angewandt wird, ähnlich wie wenn ich mir das iCal selbst downloade und importiere?
Vielen Dank für eure Hilfe
Gruß, Offe
Re: iCal verlinken
Hallo Offe,
wir haben nur vom Zeitrahmen gesprochen nicht von der Zeitzone. Gemeint war, wie weit die Daten aus Zukunft und Vergangenheit reichen sollen.
Das Problem mit der Zeitzone muss ich mal durchtesten.
Gruß Jochen
wir haben nur vom Zeitrahmen gesprochen nicht von der Zeitzone. Gemeint war, wie weit die Daten aus Zukunft und Vergangenheit reichen sollen.
Das Problem mit der Zeitzone muss ich mal durchtesten.
Gruß Jochen
Re: iCal verlinken
Hallo Jochen
Sorry ich habe auf Grund der Zeitzonenproblematik Zeitrahmen mit Zeitzone gleichgesetzt.
Wenn ich dir beim Testen helfen kann, lass es mich wissen.
Danke für deine Hilfe
Gruß Offe
Sorry ich habe auf Grund der Zeitzonenproblematik Zeitrahmen mit Zeitzone gleichgesetzt.
Wenn ich dir beim Testen helfen kann, lass es mich wissen.
Danke für deine Hilfe
Gruß Offe
Re: iCal verlinken
Hallo,
die Zeitzone zu integrieren ist leider nicht ganz so einfach, weil ich das dann natürlich für alle Zeitzonen austüfteln muss. Aber ich lass euch mal an meinen Erkenntnissen teilhaben, dann könntet ihr es bei euch ggf. schonmal hart rein codieren und testen (adm_program/system/classes/table_date.php).
Im Kopf der iCal Files muss die Zeitzone definiert werden, unter Version 2.0:
Bei den einzelnen Terminen müssen DTSTART und DTEND dann jeweils noch um die Zeitzone ergänzt werden. Also z.B. so:
Soweit die Theorie, ob das dann wirklich funktioniert weiß ich noch nicht.
Gruß jochen
die Zeitzone zu integrieren ist leider nicht ganz so einfach, weil ich das dann natürlich für alle Zeitzonen austüfteln muss. Aber ich lass euch mal an meinen Erkenntnissen teilhaben, dann könntet ihr es bei euch ggf. schonmal hart rein codieren und testen (adm_program/system/classes/table_date.php).
Im Kopf der iCal Files muss die Zeitzone definiert werden, unter Version 2.0:
Code: Alles auswählen
BEGIN:VTIMEZONE
TZID:Europe/Berlin
BEGIN:DAYLIGHT
TZOFFSETFROM:+0100
TZOFFSETTO:+0200
TZNAME:CEST
DTSTART:19700329T020000
RRULE:FREQ=YEARLY;INTERVAL=1;BYDAY=-1SU;BYMONTH=3
END:DAYLIGHT
BEGIN:STANDARD
TZOFFSETFROM:+0200
TZOFFSETTO:+0100
TZNAME:CET
DTSTART:19701025T030000
RRULE:FREQ=YEARLY;INTERVAL=1;BYDAY=-1SU;BYMONTH=10
END:STANDARD
END:VTIMEZONE
Code: Alles auswählen
DTSTART;TZID=Europe/Berlin:20121208T083000
DTEND;TZID=Europe/Berlin:20121208T133000
Soweit die Theorie, ob das dann wirklich funktioniert weiß ich noch nicht.
Gruß jochen
Re: iCal verlinken
Hier ein Ausschnitt aus der Ausgabe meines Programms (in anderem Zusammenhang), dass bis jetzt überall funktioniert. Vielleicht hilft dir das.
Code: Alles auswählen
BEGIN:VCALENDAR
VERSION:2.0
PRODID:-//noettv//NONSGML v1.0//EN
BEGIN:VTIMEZONE
TZID:Europe/Berlin
X-LIC-LOCATION:Europe/Berlin
BEGIN:DAYLIGHT
TZOFFSETFROM:+0100
TZOFFSETTO:+0200
TZNAME:CEST
DTSTART:19700329T020000
RRULE:FREQ=YEARLY;BYDAY=-1SU;BYMONTH=3
END:DAYLIGHT
BEGIN:STANDARD
TZOFFSETFROM:+0200
TZOFFSETTO:+0100
TZNAME:CET
DTSTART:19701025T030000
RRULE:FREQ=YEARLY;BYDAY=-1SU;BYMONTH=10
END:STANDARD
END:VTIMEZONE
BEGIN:VEVENT
UID:TT-WÖRD4-WÖRD5(G)-20120911T190000
SUMMARY:St. Andrä-Wördern 4 - St. Andrä-Wördern 5 / VS St. Andrä-Wördern / Turnhalle
DESCRIPTION:
CLASS:PUBLIC
DTSTART;TZID=Europe/Berlin:20120911T190000
DURATION:PT120M
END:VEVENT
Re: iCal verlinken
Wenn Du mal genau schaust, ist das dem oben geposteten auffallend ähnlich.
Re: iCal verlinken
Jochen hat geschrieben:Soweit die Theorie, ob das dann wirklich funktioniert weiß ich noch nicht.
Dann wird es funktionierenWenn Du mal genau schaust, ist das dem oben geposteten auffallend ähnlich.
Re: iCal verlinken
Hallo Jochen, hallo Dieter
danke zunächst für eure Hinweise. Mit eurer und Googles Hilfe habe ich kleine Lösung zusammenbasteln können, die die Zeitzonen entsprechend der Servereinstellung verwendet und Sommer- wie auch Winterzeit berücksichtigt.
adm_program/system/classes/table_date.php
nach Zeile 103 ("Version:2.0\n") ";" durch "." ersetzen und folgendes einfügen
Zeilen 142 und 143 (alte Zeilennummern) wie folgt abändern
Bei der Validierung der iCal-Events ist mir dabei noch aufgefallen, dass in der Description ein Zeilenumbruch zu viel ist.
in Zeile 130 (alte Zeilennummer) "\n" enternen
Getestet habe ich das ganze mit Outlook und Google. In Zusammenhang mit Google ist mir noch ein kleiner Bug aufgefallen. Die Kodierung des iCal-Events ist beim Import des Kalenders über URL nicht UTF-8 konform und Google stellt deshalb die Umlaute nicht richtig dar. Dies habe ich wie folgt behoben:
adm_program/modules/dates/ical_dates.php
in Zeile 191 die Kodierung hinzufügen
Vielleich kann einer von euch das Ganze noch überprüfen und in die nächste Version mit aufnehmen.
Viele Grüße
Offe
danke zunächst für eure Hinweise. Mit eurer und Googles Hilfe habe ich kleine Lösung zusammenbasteln können, die die Zeitzonen entsprechend der Servereinstellung verwendet und Sommer- wie auch Winterzeit berücksichtigt.
adm_program/system/classes/table_date.php
nach Zeile 103 ("Version:2.0\n") ";" durch "." ersetzen und folgendes einfügen
Code: Alles auswählen
"X-WR-TIMEZONE:".date_default_timezone_get()."\n".
"BEGIN:VTIMEZONE"."\n".
"TZID:".date_default_timezone_get()."\n".
"X-LIC-LOCATION:".date_default_timezone_get()."\n".
"BEGIN:STANDARD"."\n".
"DTSTART:19701025T030000"."\n".
"TZOFFSETFROM:+0200"."\n".
"TZOFFSETTO:+0100"."\n".
"TZNAME:CET"."\n".
"RRULE:FREQ=YEARLY;BYDAY=-1SU;BYMONTH=10"."\n".
"END:STANDARD"."\n".
"BEGIN:DAYLIGHT"."\n".
"DTSTART:19700329T020000"."\n".
"TZOFFSETFROM:+0100"."\n".
"TZOFFSETTO:+0200"."\n".
"TZNAME:CEST"."\n".
"RRULE:FREQ=YEARLY;BYDAY=-1SU;BYMONTH=3"."\n".
"END:DAYLIGHT"."\n".
"END:VTIMEZONE"."\n";
Zeilen 142 und 143 (alte Zeilennummern) wie folgt abändern
Code: Alles auswählen
$icalVEevent .= "DTSTART;TZID=".date_default_timezone_get().":". $this->getValue('dat_begin', 'Ymd')."T".$this->getValue('dat_begin', 'His')."\n".
"DTEND;TZID=".date_default_timezone_get().":". $this->getValue('dat_end', 'Ymd')."T".$this->getValue('dat_end', 'His')."\n";
in Zeile 130 (alte Zeilennummer) "\n" enternen
Code: Alles auswählen
"DESCRIPTION:". str_replace("\r\n", "", str_replace(';', '.', $this->getValue('dat_description', 'plain'))). "\n".
adm_program/modules/dates/ical_dates.php
in Zeile 191 die Kodierung hinzufügen
Code: Alles auswählen
header('Content-Type: text/calendar; charset=utf-8');
Viele Grüße
Offe