API Календаря Google - повторяющиеся события не работают - PullRequest
2 голосов
/ 28 апреля 2011

Итак, я пытаюсь создать повторяющееся событие календаря с API данных Google, и у меня много проблем. Когда я иду, чтобы добавить событие, он добавит только один экземпляр (первый день) события. Что еще более странно, когда я иду, чтобы удалить его, он спрашивает меня, хочу ли я удалить все события в этом повторении (даже если ни один после этого не существует!).

Вот повторяющийся VEVENT iCal, который я использую:

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

Есть мысли?

Ответы [ 2 ]

0 голосов
/ 20 октября 2017

Я знаю, что это старый вопрос, но при использовании Google.Apis.Calendar.v3 в .Net я столкнулся с той же проблемой.

Я обнаружил, что когда я указал OriginalStartDateTime, мой рецидив не оценивался.Это создаст событие, но не повторение.

Разрешение было довольно простым: обнулить 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;
0 голосов
/ 01 сентября 2011

Вы также можете попробовать указать TZID в RRULE, я считаю, что это необходимо.

...