Import ICS ganztägiger Termin - endet am Vortag!

  • Meine Umgebung:

    * Thunderbird-Version: 38.3.0
    * Lightning-Version: 4.0.3.1
    * Betriebssystem + Version: Win 10 Pro
    * Eingesetzte Antivirensoftware: Avira Free Antivirus
    * Firewall (Betriebssystem-intern/Externe Software): Fritz!Box OS 06.30


    Ich hab das Problem, dass ein importierter ganztägiger Termin mit dem richtigen DTSTART-Datum aber mit einem DTEND-Datum vom Vortag angezeigt wird, obwohl das Datum in der ICS-Datei identisch ist.


    Die ICS-Datei sieht so aus:



    Die Anzeige im Thunderbird-Lightning:


    Ist das ein Bug? Kann das jemand bestätigen?


    Gruß
    Nanuk

    2 Mal editiert, zuletzt von graba () aus folgendem Grund: Link aus Datenschutzgründen anonymisiert, da Personen namentlich aufgelistet waren. Code-Tags gesetzt

  • Hallo Nanuk und willkommen im Forum.
    So wie es aus sieht fehlt in dem Termin die Zeitzone.
    Das hatte wir schon, bei Tagesterminen, wenn die Angaben nicht dem ics Standard entsprechen, das so etwas auftritt.



    So sieht ein richtiger ganz Tagestermin aus.

    Gruß
    EDV-Oldi

  • Danke für die schnelle Antwort. Dein Beispiel für einen "richtigen" Tagestermin ist aber m.E. nicht ganz treffend. Die Angabe einer Timezone ist nach allem was ich gelesen habe, nicht erforderlich.


    Mal abgesehen davon, dass Dein Beispiel ein jährlich wiederkehrender Termin ist, fällt mir vor allem auf, dass DTEND einen Tag später als DTSTART ist. Kann das die Erklärung sein? Müssen ganztägige Termine immer mit DTEND = DTSTART+1 angegeben werden?


    Ich hab diese Regel nirgends nachlesen können. Auch in RFC 5545 hab ich dazu nichts gefunden. Aber wenn dies so ist, dann ist mein Problem gelöst.


    Gruß
    Nanuk

  • Congratulations; your calendar validated!


    Falsch ist die ICS-Datei also nicht - aber offenbar interpretierbar.


    Ich hab jetzt im Netz sowohl für die eine als auch für die andere Methode Beispiele gefunden:

    Code
    1. ; DTSTART = DTEND
    2. BEGIN:VCALENDAR
    3. VERSION:2.0
    4. BEGIN:VEVENT
    5. DTSTART:20110422
    6. DTEND:20110422
    7. SUMMARY:Karfreitag
    8. END:VEVENT
    9. END:VCALENDAR

    und


  • @Nanuk


    Korrekt wäre

    Code
    1. DTSTART;VALUE=DATE:20160108
    2. DTEND;VALUE=DATE:20160109


    Voll ausgeschrieben eigentlich


    Code
    1. DTSTART;VALUE=DATE:20160108T000000Z
    2. DTEND;VALUE=DATE:20160109T000000Z

    Nach RFC 5545 gehört DTEND nicht mehr zum Termin!


    Viel eleganter

    Code
    1. DTSTART;VALUE=DATE:20160108
    2. DURATION:P1D

    bzw. P2D P3D ... bei Wiederholungen von Terminen klappt leider nur P1D sicher!
    Für faule Mitbürger: lt. RFC 5545 darf DTEND und DURATION entfallen und dann ist es ein Tag bzw. bis zum Tagesende - Lightning interpretiert das korrekt. Ich als kleiner Feigling setze DURATION ein.
    Also bitte den Ersteller der Dateien darauf aufmerksam machen.
    Der lustige Effekt von Lightning ...


    @edvoldi


    Habe mich über Hinweis auf http://severinghaus.org/projects/icv/ gefreut wie ein neues Fünferl - nur die ersten Tests gingen gründlich in die Hose:
    von 'nanuk' wurde akzeptiert, drei von meinen auf mehreren Plattformen/Serverdiensten funktionsfähigen wurden mit seltsamen Meldungen angemeckert!


    Edith sagte mir ...


    Zitat

    RFC 5545
    The "DTSTART" property for a "VEVENT" specifies the inclusive start of the event. For recurring events, it also specifies the very first instance in the recurrence set. The "DTEND" property for a "VEVENT" calendar component specifies the non-inclusive end of the event. For cases where a "VEVENT" calendar component specifies a "DTSTART" property with a DATE value type but no "DTEND" nor "DURATION" property, the event's duration is taken to be one day. For cases where a "VEVENT" calendar component specifies a "DTSTART" property with a DATE-TIME value type but no "DTEND" property, the event ends on the same calendar date and time of day specified by the "DTSTART" property.

    4 Mal editiert, zuletzt von graba () aus folgendem Grund: Quote-Tags gesetzt

  • Nach RFC 5545 gehört DTEND nicht mehr zum Termin!

    Stimmt:

    Zitat


    The "DTSTART" property for a "VEVENT" specifies the inclusive start of the event. For recurring events, it also specifies the very first instance in the recurrence set. The "DTEND" property for a "VEVENT" calendar component specifies the non-inclusive end of the event.


    Das erste gepostete VEVENT oben ist daher für einen ganztägigen Termin nicht korrekt. Dass die Testseite das nicht erkennt, ist nicht weiter verwunderlich. Sie "weiß" ja nicht, dass es sich eigentlich um einen ganztägigen Termin handeln sollte.

  • @boe und SusiTux :
    Ihr habt das wirklich sehr professionell und überzeugend erklärt. Leuchtet mir jetzt ein.


    Ich werd jetzt auch die DURATION verwenden - der Ersteller bin ich nämlich selbst.


    Gruß
    Nanuk

  • @ den Ersteller


    Vorbeugend - denn es könnten auch andere Deine Kalender benutzen 1 vor erstes Ereignis


    CLASS:PUBLIC ist keine gute Idee 2


    Code
    1. CLASS:PRIVATE

    Und in jede Ereignis ein fröhliches 3



    Code
    1. TRANSP:TRANSPARENT

    Viel Erfolg!



    1 Dein Schuldner aus GR ;-) oder Dein Gerichtsvollzieher aus GB :-(
    2 Ein Nutzer stellt ggf. ausversehen seine Kommentare online ...
    3 Um beim Nutzer nicht gleich den ganzen Tag zuzuballern

  • Dann hat mein Link zu dieser Seite ( severinghaus.org/projects/icv/ ) doch geholfen.
    Da ich kein Englisch kann, konnte ich bei den andren Frage leider nicht helfen.

    Gruß
    EDV-Oldi

  • Vorbeugend - denn es könnten auch andere Deine Kalender benutzen
    1
    Dein Schuldner aus GR wink.png oder Dein Gerichtsvollzieher aus GB sad.png
    2 Ein Nutzer stellt ggf. ausversehen seine Kommentare online ...
    3 Um beim Nutzer nicht gleich den ganzen Tag zuzuballern

    Hallo boe,


    Du machst Dir unnötig Sorgen.


    1. Es ist ein Veranstaltungskalender. Je mehr Leute ihn abrufen, desto besser.
    2. Man kann die ICS-Datei nur runterladen (PHP). Ein Schreiben Richtung Server ist nicht möglich.
    3. Da es alles ganz- oder mehrtägige Events sind, ist die freie Zeit nicht tangiert.


    Gruß
    Nanuk

  • zu 1.) Der Gerichtsvollzieher kommt natürlich nicht selber - er schickt Moskau-Inkasso. Die Mädels haben in ihrem Kläpptop eine andere Zeitzone. Nun stehen die stundenlang in dem Sauwetter nur weil du die paar Zeilen nicht mitsendest? Oder der freundliche und etwas schussliche (nach Heimaturlaub) Grieche von nebenan kommt eine Stunde zu früh?
    zu 2.) Aber der Nutzer importiert die ggf. - schreibt was (freundliches) zu 'Nanuk' in den Termin und vergisst, daß sein Kalender online ist ...
    zu 3.) Ist der Standard "Beschäftigt", blockiert das Ereignis möglicherweise einen anderen Termin "14:00-14:30 Rendevouz hinter Würstchenbude! Kommst Du?" - selber schuld ;-)


    Es gibt viele gute Gründe eine Kalenderdatei nur voll ausgetextet in die freie Wildbahn zu entlassen!


    Gruß


    Ein besorgter Mitbürger :-D