2013-11-03 20 views
3

我使用的偉大工程的DDal ical library但我只是意識到,我想看看如何指示的事件作爲走出辦公室與繁忙的(因此在Microsoft Outlook中加載時它顯示了不同使用DDay ical庫時,您如何指示忙碌與免費還是外出辦公?

我看到物業listed on this microsoft site所謂:

  • X-MICROSOFT-CDO-BUSYSTATUS
  • PidLidBusyStatus

這是可以從DDAY的iCal庫中設置此因爲我在文檔中沒有看到任何內容?

+0

你覺得我的文章沒有充分回答你的問題嗎? –

回答

4

如果你有在RFC 2445描述你的心中忙/閒組件,則尚未實現基於DDay.iCal Compliance with RFC 2445名單上。

+0

這是什麼表示離開辦公室與繁忙? – leora

+0

我經歷了所有的代碼,除非你尋求的功能被命名爲隱藏在別的東西中(我不這麼認爲),否則......你應該遇到不同的聲明,請告訴我,請 –

0

Don't use dday.ical;使用ical.net它包含了許多性能增強和錯誤修正。)

任何與X-前綴意味着它的供應商特定的。沒有標準的方式來說「離開辦公室」與「忙碌」。我相信「展望」也有一個「試探性」的概念,也涉及到這個領域。

icalendar spec supports四種基本狀態:「FREE」,「BUSY」,「BUSY -UNAVAILABLE」,「BUSY-TENTATIVE」。這些都是VFREEBUSY組件的全部有效選項。該規範旨在將VFREEBUSY及其子標題FREEBUSY組件基本上傳遞給試圖規劃會議的人員的忙閒信息。 Outlook具有其調度助理功能;它可能會使用VFREEBUSY信息來顯示其時間軸。

所以這不是你要找的。

該規範確實有categories一個概念,其中一個例子是「不在辦公室」:

一些可能的英語值「類別」屬性包括: 「紀念日」,「約會」 ,「業務」,「教育」,「假日」, 「聚會」,「雜項」,「非工作時間」,「不在辦公室」, 「個人」,「電話」,「SICK DAY」, 「特殊場所」,「旅行」, 「假期」。類別可以用任何註冊語言指定。

這些選項都不是很好,而且是國際海事組織這個規格不足的另一個地方。你幾乎想要一個BUSY-OUT-OF-OFFICE狀態,可以在VFREEBUSY清單中指定,但規範沒有它,ical.net(或它之前的dday.ical)也沒有。

爲此,手動會更好加上X-MICROSOFT-CDO-BUSYSTATUS屬性的情況下,如果Outlook是費時的序列化輸出的東西:

var now = DateTime.Now; 
var later = now.AddHours(1); 

var e = new Event 
{ 
    DtStart = new CalDateTime(now), 
    DtEnd = new CalDateTime(later), 
}; 
e.AddProperty("X-MICROSOFT-CDO-BUSYSTATUS", "OOF"); // I think "OOF" is right per the MS documentation 

var calendar = new Calendar(); 
calendar.Events.Add(e); 

var serializer = new CalendarSerializer(new SerializationContext()); 
var icalString = serializer.SerializeToString(calendar); 
Console.WriteLine(icalString); 

這會產生這樣的:

BEGIN:VCALENDAR 
PRODID:-//github.com/rianjs/ical.net//NONSGML ical.net 2.1//EN 
VERSION:2.0 
BEGIN:VEVENT 
DTEND:20160827T162931 
DTSTAMP:20160827T192931Z 
DTSTART:20160827T152931 
SEQUENCE:0 
UID:fea526df-7f40-4585-a9de-8d422e43eebe 
X-MICROSOFT-CDO-BUSYSTATUS:OOF 
END:VEVENT 
END:VCALENDAR 
+0

OOF在Outlook 2016中將它設置爲我們的辦公室嗎? – Jack

+0

另外,有沒有辦法將它設置爲私人? – Jack