使用iCal.Net。
我想要实现的目标是缩小日历以通过互联网发送日历,因此我不必发送整个日历,这会浪费(考虑到它会变大)如果我是问一天发生了什么。
我们应该只发送给定时期内发生的事情。
Calendar.GetOccurrences(IDateTime startTime, IDateTime endTime)
似乎是一个好的开始,我不知道如何获得实际的CalendarObject,也不知道它是不是很好的方法。
答案 0 :(得分:2)
这是我以前没有遇到的用例,但它不应该太难。我想我会这样做:
var relevantEvents = bigCalendar.GetOccurrences(start, end)
.Select(o => o.Source) // The parent IRecurrable
.Cast<Event>() // Which is an Event/CalendarEvent
.Distinct()
.ToList();
var smallerCalendar = new Calendar();
// I should add an extension method to UniqueComponentList for AddRange()
foreach (var relevantEvent in relevantEvents)
{
smallerCalendar.Events.Add(relevantEvent);
}