2012-08-24 11 views
8

私は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); 
} 

答えて

3

オーガナイザーをテスト文字列ではなく電子メールアドレスに設定すると、正常に機能しました。私はこれをすべて書いていたので、他の誰かが同じ問題を抱えている場合に共有すると思った。

+0

感謝を変更しなければなりませんでした。 –

1

交換サーバーが2003年からOutlook 2010にアップグレードされたときに私のアプリケーションが機能しなくなった。今私は、要求に、あなたが後で行くと会議出席依頼としてこれを更新した場合、電子メールは実際に、何のために使用されて表示されていないことを記事

関連する問題