我正在使用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<Event>();
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);
}
答案 0 :(得分:3)
当我将管理器设置为电子邮件地址而不是测试字符串时,它工作正常。我写了所有这些,所以我想我会分享它以防其他人遇到同样的问题
答案 1 :(得分:1)
当Exchange服务器从2003年升级到Outlook 2010时,我的应用程序停止工作。在升级之前PUBLISH工作正常,但现在我不得不更改为REQUEST
感谢您的文章