#google-calendar-api #google-data-api #icalendar
#google-calendar-api #google-data-api #icalendar
Вопрос:
Итак, я пытаюсь создать повторяющееся событие календаря с помощью Google data api, и у меня возникают большие проблемы. Когда я перейду к добавлению события, он добавит только один экземпляр (первый день) события. Что еще более странно, когда я захожу, чтобы удалить его, он спрашивает меня, хочу ли я удалить все события в этом повторении (даже если ни одно после него не существует!).
Вот iCal повторяющееся событие, которое я использую:
DTSTART;TZID=America/New_York:20110905T122000
DTEND;TZID=America/New_York:20110905T131000
RRULE:FREQ=WEEKLY;UNTIL=20111222T230000;BYDAY=MO
Есть мысли?
Ответ №1:
Я знаю, что это старый вопрос, но при использовании 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 resu<
Ответ №2:
Вы также можете попробовать указать TZID в RRULE, я считаю, что это необходимо.