Google Calendar API - 重复活动不起作用

时间:2011-04-28 01:59:33

标签: google-calendar-api google-data-api icalendar

所以我正在尝试使用google data api创建一个定期日历活动,而且我遇到了很多麻烦。当我去添加事件时,它只会添加事件的一个实例(第一天)。甚至更奇怪的是,当我去删除它时,它询问我是否要删除此重复中的所有事件(即使它没有存在!)。

这是我正在使用的iCal重复版VEVENT:

DTSTART;TZID=America/New_York:20110905T122000
DTEND;TZID=America/New_York:20110905T131000 
RRULE:FREQ=WEEKLY;UNTIL=20111222T230000;BYDAY=MO 

有什么想法吗?

2 个答案:

答案 0 :(得分:0)

您也可以尝试在RRULE中指定TZID,我相信这是必需的。

答案 1 :(得分:0)

我知道这是一个老问题,但在Google.Apis.Calendar.v3中使用.Net时遇到了同样的问题。

我发现当我指定OriginalStartDateTime时,我的Recurrence没有被评估。它会创建一个事件,但不会重现。

分辨率非常简单:取消OriginalStartDateTime

var e = new Event
        {
            Description = "TEST EVENT",
            Location = "Computer",
            Summary = "Test Event. Safe to delete.",
            Start = new EventDateTime{DateTime = new DateTime(2017,05,16, 3, 30, 00), TimeZone = "America/Chicago"}, // This is used as the OriginalStartTime
            End = new EventDateTime{DateTime = new DateTime(2017,05,16, 4, 00, 00), TimeZone = "America/Chicago"}, // This is used as the OriginalStartTime
            ICalUID = Guid.NewGuid().ToString(),
            Organizer = new Event.OrganizerData
            {
                DisplayName = "Test Event"
            },
            Recurrence = new [] { "RRULE:FREQ=WEEKLY;BYDAY=TU,TH;UNTIL=20180701T170000Z" },

            // When set, event does not repeat.
            OriginalStartTime = null //  new EventDateTime{DateTime = new DateTime(2017,05,16), TimeZone="America/Chicago"}
        };

        ... GET SERVICE CODE ...

        var request = googleCalendarService.Events.Import(e, GoogleCalendarId);
        var result = request.Execute();
        return result;