2009-08-13 10 views
4

J'essaie d'ajouter un événement récurrent à mon agenda via l'API de protocole. J'ai pris la syntaxe de la balise de récurrence d'un événement que j'ai créé dans l'interface de Google et utilisé dans ma demande de création. Voici ce que j'ai soumis:Ajout d'un événement récurrent à Google Agenda via XML

<?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 du flux d'événement résultant, le RRULE qui définit la répétition n'est pas là.

Nous vous remercions de votre aide!

Répondre

5

Deux choses:

  1. section Votre fuseau horaire n'est pas valable - je crois que chaque propriété devrait être sur une ligne lui-même.

  2. Votre "UNTIL" doit être une heure UTC. De RFC2445:

Si spécifié comme une valeur date-heure, il doit être spécifié dans un format de l'heure UTC.

Alors, voici un exemple complet, après avoir réglé l'heure locale à UTC pour la « jusqu'à ce que » une partie, et étendu 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 faufilant cette peut avoir été un changement récent.

Alternativement, vous pouvez essayer d'omettre la section VTIMEZONE entièrement - juste fournir le TZID, qui devrait être un identifiant que Google Calendar prend en charge. Par exemple:

DTSTART;TZID=America/Los_Angeles:20090824T080000 
DTEND;TZID=America/Los_Angeles:20090824T090000 
RRULE:FREQ=DAILY;WKST=SU;UNTIL=20090828T160000Z 
+1

Cela, en plus de supprimer l'espace blanc principal (je l'indentais) l'a fait. – KingErroneous

+0

Avait un problème similaire et le coupable était l'espace! Merci – aldrin

Questions connexes