私はDDayライブラリを使ってiCalイベントを作成しているので、自分のサイトのユーザーがカレンダーに何かを追加することができます。DDay.iCalでOutlookの「予定」を作成するにはどうすればよいですか?
Office 2010の会議出席依頼ではなく、予定を追加してもらいたい(とうまくいけば他の人も)。ライブラリを使用してそのメソッドをPUBLISHに設定すると、予定として表示されますが、カレンダーに会議が見つからないことが報告されます。その後、必要なレスポンスをクリックしないと、アイテムは削除され、カレンダーには残りません。
このメソッドをREQUESTに変更すると、会議出席依頼として表示されます。これは大丈夫な二番目に良いオプションですが、 'to'フィールドは空白です。それが私ができる最高のものなら、どうすれば '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);
}
注
感謝を変更しなければなりませんでした。 –