2009-08-13 43 views
4

我試圖通過協議API向我的日曆添加週期性事件。我從我在Google界面中創建的事件中獲取了重複標記的語法,並在我的創建請求中使用了該事件。以下是我提交的內容:通過XML向Google日曆添加週期性事件

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

事件已添加,但不重複。當我查看結果事件饋送的重複部分時,定義重複的RRULE不在那裏。

謝謝你的幫助!

回答

5

兩件事情:

  1. 你的時區部分是無效的 - 我相信每個屬性應該是對自己的一條線。

  2. 你的「UNTIL」應該是UTC時間。從RFC2445:

如果指定爲日期時間值,那麼它必須在UTC時間格式指定。

所以這裏有一個完整的例子,調整了本地時間爲UTC的「直到」部分,並擴大了時區:

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 

我已暗自懷疑這個可能已最近的變化。

或者,您可能想嘗試完全忽略VTIMEZONE部分 - 只需提供TZID,該TZID應該是您知道Google日曆支持的ID。例如:

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

這樣,除了刪除領先的空白(我縮進它)做到了。 – KingErroneous 2009-08-13 21:28:06

+0

有類似的問題,罪魁禍首是空白!謝謝 – aldrin 2009-12-17 12:41:36

相關問題