Outlook vCalendar-显示为(忙/闲/暂定/不在办公室)

Outlook vCalendar-显示为(忙/闲/暂定/不在办公室),outlook,calendar,vcalendar,Outlook,Calendar,Vcalendar,我向Outlook发送了一条vCalendar消息,导致Outlook日历中出现新事件。 如何设置“显示为”字段?(空闲/忙碌/暂时/外出)您指的是哪个状态字段?你是指回复会议请求时还是发送会议信息时 不管怎样,答案都在vCalendar标准文档中。我想你指的是状态字段。Wikipedia有这样一个例子: BEGIN:VCALENDAR VERSION:1.0 BEGIN:VEVENT CATEGORIES:MEETING STATUS:TENTATIVE DTSTART:19960401T03

我向Outlook发送了一条vCalendar消息,导致Outlook日历中出现新事件。
如何设置“显示为”字段?(空闲/忙碌/暂时/外出)

您指的是哪个状态字段?你是指回复会议请求时还是发送会议信息时

不管怎样,答案都在vCalendar标准文档中。我想你指的是状态字段。Wikipedia有这样一个例子:

BEGIN:VCALENDAR
VERSION:1.0
BEGIN:VEVENT
CATEGORIES:MEETING
STATUS:TENTATIVE
DTSTART:19960401T033000Z
DTEND:19960401T043000Z
SUMMARY:Your Proposal Review
DESCRIPTION:Steve and John to review newest proposal material
CLASS:PRIVATE
END:VEVENT
END:VCALENDAR

该格式的标准文件为:

您也可以尝试在outlook中创建事件,将其保存为vCard,然后在记事本中打开vCard。这将显示outlook如何保存信息

文档使我相信,您只能设置忙碌或暂时状态:

4.8.1.11状态

属性名称:状态

用途:此属性定义
日历组件

值类型:文本

属性参数:非标准 属性参数可以是
在此属性上指定

 FREEBUSY;FBTYPE=BUSY:19980415T133000Z/19980415T170000Z
一致性:此属性可以是 在“VEVENT”、“VTODO”或
“VJOURNAL”日历组件

描述:在计划的组中 日历组件,属性为
“组织者”用于提供 向客户确认事件
“与会者”。例如在“VEVENT”中 日历组件,“组织者” 可以表示会议正在进行中 暂时的,确定的或取消的。 在“VTODO”日历组件中 “组织者”可以表示 行动项目需要行动,是吗 已完成、正在进行或正在进行 已处理或已取消。在一个 “VJOURNAL”日历组件 “组织者”可以表示 日记账分录为草稿、最终或最终分录 已被取消或删除

格式定义:属性为 由以下符号定义:

 status     = "STATUS" statparam] ":" statvalue CRLF

 statparam  = *(";" xparam)

 statvalue  = "TENTATIVE"           ;Indicates event is
                                    ;tentative.
            / "CONFIRMED"           ;Indicates event is
                                    ;definite.
            / "CANCELLED"           ;Indicates event was
                                    ;cancelled.
    ;Status values for a "VEVENT"
 fbtypeparam        = "FBTYPE" "=" ("FREE" / "BUSY"
                    / "BUSY-UNAVAILABLE" / "BUSY-TENTATIVE"
                    / x-name
    ; Some experimental iCalendar data type.
                    / iana-token)



    ; Some other IANA registered iCalendar data type.

事实证明,在《标准》中有这样一个位置,肖恩错过了:

4.2.9忙/闲时间类型

参数名称:FBTYPE

目的:指定免费或免费 繁忙时间类型

格式定义:属性 参数由以下内容定义 符号:

 status     = "STATUS" statparam] ":" statvalue CRLF

 statparam  = *(";" xparam)

 statvalue  = "TENTATIVE"           ;Indicates event is
                                    ;tentative.
            / "CONFIRMED"           ;Indicates event is
                                    ;definite.
            / "CANCELLED"           ;Indicates event was
                                    ;cancelled.
    ;Status values for a "VEVENT"
 fbtypeparam        = "FBTYPE" "=" ("FREE" / "BUSY"
                    / "BUSY-UNAVAILABLE" / "BUSY-TENTATIVE"
                    / x-name
    ; Some experimental iCalendar data type.
                    / iana-token)



    ; Some other IANA registered iCalendar data type.
Description:参数 指定空闲或繁忙时间类型。 值FREE表示 时间间隔可自由安排。 值BUSY表示时间 时间间隔很忙,因为一个或多个 已经安排了更多的活动 这段时间。值
忙-不可用表示 时间间隔很忙,并且 无法安排时间间隔。这个 值BUSY-tential表示 时间间隔很忙,因为 一个或多个事件已发生
暂定 间隔如果未在上指定
属性,该属性允许使用此参数, 默认设置为忙

示例:下面是一个示例 示例中的此参数 闲忙物业

 FREEBUSY;FBTYPE=BUSY:19980415T133000Z/19980415T170000Z

我在Outlook 2010创建的.ics文件中看到了这一行

X-MICROSOFT-CDO-BUSYSTATUS:FREE

因此,看起来微软已经“扩展”了vcal规范以适应他们的用途。我可以确认,在Outlook中查看提要时添加该行确实有效,在iPhone日历应用程序中使用提要时似乎不会造成任何伤害。

X-MICROSOFT-CDO-BUSYSTATUS:OOF


标记outlook的“外出”日历

由于RFC 2445和5545都不支持状态OOO和暂定,您可以使用属性X-MICROSOFT-CDO-INTENDEDSTATUS:

不确定这些年来情况是否发生了变化,但我可以使用它自动将情况设置为暂定:

X-MICROSOFT-CDO-BUSYSTATUS:TENTATIVE

我使用python导入win32, 因为这是一个名为BUSYSTATUS的属性, 该值可以定义节目的状态 空闲=0,1=紧张,2=忙碌

import win32com.client as win32


outlook = win32.Dispatch('outlook.application')
myItem = outlook.CreateItem(1)
myItem.MeetingStatus =(1) ## this means it is an appointment
myItem.BUSYSTATUS=0 ## SHOW AS 0=FREE,1=TENTIVE,2=BUSY

以下任何一项对你有用吗?最好接受一个答案:)暂定在RFC 5545中,请参阅。(是否得到CalDAV客户端的支持是另一个问题。)我不认为“离开”映射到OOO。我尝试过这个,但似乎不起作用。也许是我的实现,但我认为FREEBUSY是用于VFREEBUSY组件的,而不是用于VEVENT。