如何使用DDay.iCal创建Outlook“约会”?

我正在使用DDay库来创建iCal事件,以便我的网站用户可以在他们的日历中添加内容。

我希望他们在Office 2010中添加约会而不是会议请求(希望其他人也是如此)。 当我使用库并将方法设置为PUBLISH时,它确实显示为约会,但它报告在日历中找不到会议。 然后,当我单击无需响应时,该项目将被删除,并且不会保留在其日历中。

如果我将方法更改为REQUEST,它将显示为会议请求。 这可能是第二好的选择,但’to’字段是空白的。 如果这是我能做的最好的,我怎样才能设置’到’字段? 我想我会让他们回应自己。

private static string CreateCalendarEvent( string title, string body, DateTime startDate, double duration, string location, string organizer, string eventId, bool allDayEvent) { // mandatory for outlook 2007 if(String.IsNullOrEmpty(organizer)) throw new Exception("Organizer provided was null"); var iCal = new iCalendar { Method = "PUBLISH", Version = "2.0" }; // "REQUEST" will update an existing event with the same UID (Unique ID) and a newer time stamp. //if (updatePreviousEvent) //{ // iCal.Method = "REQUEST"; //} var evt = iCal.Create(); evt.Summary = title; evt.Start = new iCalDateTime(startDate); evt.Duration = TimeSpan.FromHours(duration); evt.Description = body; evt.Location = location; evt.IsAllDay = allDayEvent; evt.UID = String.IsNullOrEmpty(eventId) ? new Guid().ToString() : eventId; evt.Organizer = new Organizer(organizer); evt.Alarms.Add(new Alarm { Duration = new TimeSpan(0, 15, 0), Trigger = new Trigger(new TimeSpan(0, 15, 0)), Action = AlarmAction.Display, Description = "Reminder" }); return new iCalendarSerializer().SerializeToString(iCal); } 

当我将组织者设置为电子邮件地址而不是测试字符串时,它工作正常。 我写了所有这些,所以我想我会分享它以防其他人有同样的问题

当Exchange服务器从2003年升级到Outlook 2010时,我的应用程序停止工作。在升级之前PUBLISH工作正常,但现在我不得不更改为REQUEST

谢谢你的文章