【问题标题】:When using the DDay ical library, How do you indicate busy versus free versus out office?在使用 DDay ical 库时,您如何表示忙碌、空闲和外出?
【发布时间】:2013-11-14 12:42:57
【问题描述】:

我正在使用 DDal ical library 效果很好,但我刚刚意识到我想看看如何将事件指示为不在办公室和忙碌(因此在加载到 Microsoft Outlook 时显示不同

我看到 listed on this microsoft site 的属性调用:

  • X-MICROSOFT-CDO-BUSYSTATUS
  • PidLidBusyStatus

由于我在文档中看不到任何内容,因此是否可以在 DDay ical 库中进行设置?

【问题讨论】:

  • 您是否觉得我的帖子没有充分回答您的问题?

标签: c# icalendar dday


【解决方案1】:

如果您想到了RFC 2445 中描述的忙/闲组件,那么它还没有基于DDay.iCal Compliance with RFC 2445 列表实现。

【讨论】:

  • 这是不在办公室还是忙的意思?
  • 我浏览了所有代码,除非您所寻求的功能被命名为隐藏在其他东西中(我不这么认为),否则...如果您遇到不同的声明,请告诉我
【解决方案2】:

Don't use dday.ical;使用ical.net。它包含许多性能增强和错误修复。)

X- 为前缀的任何内容都表示它是特定于供应商的。没有标准的方式来表示“不在办公室”与“忙碌”。我相信 Outlook 也有一个“暂定”的概念,它也适用于该领域。

icalendar spec supports 四种基本状态:“FREE”、“BUSY”、“BUSY-UNAVAILABLE”、“BUSY-TENTATIVE”。这些都是VFREEBUSY 组件的有效选项。该规范旨在让 VFREEBUSY 及其子标题 FREEBUSY 组件实质上为尝试计划会议的人们传达忙闲信息。 Outlook 具有日程安排助手功能;它可能会使用 VFREEBUSY 信息来显示其时间线。

所以这并不是你真正想要的。

规范确实有categories 的概念,其中一个例子是“不在办公室”:

“CATEGORIES”属性的一些可能的英文值包括: “周年纪念”、“约会”、“商业”、“教育”、“假期”、 “会议”、“杂项”、“非工作时间”、“不在办公室”、 “个人”、“电话”、“病假”、“特殊场合”、“旅行”、 “假期”。可以使用任何注册语言指定类别。

这些选项都不是很好,而且,IMO 是规范不足的另一个地方。您几乎想要一个可以在 VFREEBUSY 清单中指定的 BUSY-OUT-OF-OFFICE 状态,但规范没有它,ical.net(或之前的 dday.ical)也没有。

为此,如果 Outlook 是消耗序列化输出的对象,最好手动将 X-MICROSOFT-CDO-BUSYSTATUS 属性添加到事件中:

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

【讨论】:

  • OOF 是否在 Outlook 2016 中将其设置为我们的办公室?
  • 另外,有没有办法将其设置为私有?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-05-18
  • 1970-01-01
  • 1970-01-01
  • 2012-12-06
  • 2016-10-27
  • 1970-01-01
相关资源
最近更新 更多