Domanda

Sto cercando di aggiungere un evento ricorrente al mio calendario tramite l'API protocollo. Ho preso la sintassi del tag recidiva da un evento che ho creato nell'interfaccia di Google e usato che nella mia creano richiesta. Ecco quello che ho presentato:

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

viene aggiunto l'evento, ma non si ripete. Quando guardo la sezione ricorrenza del mangime evento risultante, la RRULE che definisce la ripetizione non c'è.

Grazie per tutto l'aiuto!

È stato utile?

Soluzione

Due cose:

  1. Il tuo sezione fuso orario non è valido - Credo che ogni proprietà deve essere su una riga da solo

  2. .
  3. Il "fino a quando" dovrebbe essere un tempo UTC. Da RFC2445:

  

Se specificato come un valore data-ora, allora deve essere specificato in un formato di ora UTC.

Quindi, ecco un esempio completo, aver regolato l'ora locale di UTC per il "fino a che" una parte, e ampliato il fuso orario:

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

ho un vago sospetto questa possono essere stato un recente cambiamento.

In alternativa, si potrebbe desiderare di provare a omettere la sezione VTIMEZONE del tutto - basta fornire il TZID, che dovrebbe essere un ID che si sa Google Calendar supporta. Ad esempio:

DTSTART;TZID=America/Los_Angeles:20090824T080000
DTEND;TZID=America/Los_Angeles:20090824T090000 
RRULE:FREQ=DAILY;WKST=SU;UNTIL=20090828T160000Z
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top