通过XML增加经常性事件,谷歌日历(Adding recurring event to Google

2019-08-01 04:00发布

我试图通过协议API来重复事件添加到我的日历。 我把复发代码的语法,从我在谷歌的界面中创建一个事件,并使用在我创建的请求。 这里是我提交的内容:

<?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是不存在。

感谢您的任何帮助!

Answer 1:

两件事情:

  1. 你的时区部分是无效的 - 我相信每个属性应该是对自己的一条线。

  2. 你“直到”应该是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,这应该是你知道谷歌日历支持的ID。 例如:

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


文章来源: Adding recurring event to Google Calendar via XML