Ajout d'événement récurrent à Google Agenda via XML
-
16-09-2019 - |
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!
La solution
Deux choses:
-
Votre section fuseau horaire n'est pas valide - Je crois que chaque propriété devrait être sur une ligne sur son propre
.
-
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