Frage

Ich versuche, ein wiederkehrendes Ereignis in meinen Kalender über das Protokoll API hinzuzufügen. Ich nahm die Syntax der Wiederholung Tag von einem Ereignis, das ich in den Google-Schnittstelle erstellt und verwendet das in meiner Anfrage zu erstellen. Hier ist, was ich vorgelegt:

<?xml version='1.0' encoding='utf-8' ?> 
<entry xmlns='http://www.w3.org/2005/Atom' xmlns:gd='http://schemas.google.com/g/2005'> 
    <category scheme='http://schemas.google.com/g/2005#kind' term='http://schemas.google.com/g/2005#event'></category> 
    <title type='text'>Hi Stack Overflow!</title> 
    <content type='text'>Help me please!</content> 
    <gd:where valueString='StackOverflow.com'></gd:where> 
    <gd:recurrence>
        DTSTART;TZID=America/Los_Angeles:20090824T080000
        DTEND;TZID=America/Los_Angeles:20090824T090000 
        RRULE:FREQ=DAILY;WKST=SU;UNTIL=20090828T090000 
        BEGIN:VTIMEZONE TZID:America/Los_Angeles X-LIC-LOCATION:America/Los_Angeles 
        BEGIN:DAYLIGHT TZOFFSETFROM:-0800 TZOFFSETTO:-0700 TZNAME:PDT DTSTART:19700308T020000 
        RRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=2SU 
        END:DAYLIGHT 
        BEGIN:STANDARD TZOFFSETFROM:-0700 TZOFFSETTO:-0800 TZNAME:PST DTSTART:19701101T020000 
        RRULE:FREQ=YEARLY;BYMONTH=11;BYDAY=1SU 
        END:STANDARD 
        END:VTIMEZONE
    </gd:recurrence> 
 </entry>

Das Ereignis wird hinzugefügt, aber es wird nicht wiederholt. Als ich bei der Wiederholung Abschnitt des resultierenden Ereignis Feed aussehen, dass die RRULE die sich wiederholende definiert ist nicht da.

Vielen Dank für jede Hilfe!

War es hilfreich?

Lösung

Zwei Dinge:

  1. Ihre Zeitzone Abschnitt ist nicht gültig - ich jede Eigenschaft glaube auf einer Linie auf seinem eigenen sein sollte

  2. .
  3. Ihr "bis" sollte eine UTC-Zeit sein. Aus RFC2445:

  

Wenn als Datum-Zeit-Wert angegeben, dann muss es in einem UTC-Format angegeben werden.

Also hier ist ein vollständiges Beispiel, die lokale Zeit für den „bis“ Teil zu UTC eingestellt zu haben, und erweiterte die Zeitzone:

DTSTART;TZID=America/Los_Angeles:20090824T080000
DTEND;TZID=America/Los_Angeles:20090824T090000 
RRULE:FREQ=DAILY;WKST=SU;UNTIL=20090828T160000Z
BEGIN:VTIMEZONE
TZID:America/Los_Angeles
X-LIC-LOCATION:America/Los_Angeles 
BEGIN:DAYLIGHT
TZOFFSETFROM:-0800
TZOFFSETTO:-0700
TZNAME:PDT
DTSTART:19700308T020000 
RRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=2SU 
END:DAYLIGHT 
BEGIN:STANDARD
TZOFFSETFROM:-0700
TZOFFSETTO:-0800
TZNAME:PST
DTSTART:19701101T020000 
RRULE:FREQ=YEARLY;BYMONTH=11;BYDAY=1SU 
END:STANDARD 
END:VTIMEZONE

Ich habe einen schleichenden Verdacht, diese können haben eine neue Änderung.

Alternativ können Sie das VTIMEZONE Abschnitt vollständig versuchen Weglassen - nur die TZID liefern, die eine ID sein sollte, dass Sie wissen, Google Kalender unterstützt. Zum Beispiel:

DTSTART;TZID=America/Los_Angeles:20090824T080000
DTEND;TZID=America/Los_Angeles:20090824T090000 
RRULE:FREQ=DAILY;WKST=SU;UNTIL=20090828T160000Z
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top