Question

Je suis en train d'ajouter un événement récurrent à mon agenda via l'API de protocole. Je pris la syntaxe de la balise de récurrence d'un événement que j'ai créé dans l'interface de Google et utilisé que dans ma demande de création. Voici ce que je soumettais:

<?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>

L'événement est ajouté, mais il ne se répète pas. Quand je regarde la section de récurrence de l'alimentation des événements résultant, l'RRULE qui définit la répétition est pas là.

Merci pour toute aide!

Était-ce utile?

La solution

Deux choses:

  1. Votre section fuseau horaire n'est pas valide - Je crois que chaque propriété devrait être sur une ligne sur son propre

  2. .
  3. Votre "until" devrait être un temps UTC. De RFC2445:

  

Si cela est spécifié comme valeur date-heure, il doit être spécifié dans un format de temps UTC.

Alors, voici un exemple complet, après avoir réglé l'heure locale à UTC pour la « jusqu'à ce que » une partie, et élargi le fuseau horaire:

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

je soupçonne cette faufilant peut ont été un changement récent.

Vous pouvez essayer d'omettre la section VTIMEZONE entièrement - il suffit de fournir le TZID, qui devrait être une carte d'identité que vous connaissez Google Calendar soutient. Par exemple:

DTSTART;TZID=America/Los_Angeles:20090824T080000
DTEND;TZID=America/Los_Angeles:20090824T090000 
RRULE:FREQ=DAILY;WKST=SU;UNTIL=20090828T160000Z
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top