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

时间:2009-04-28 13:45:16

标签: outlook calendar vcalendar

我向Outlook发送了一条vCalendar消息,导致Outlook日历中出现了一个新事件。 如何设置“显示为”字段? (忙/闲/暂定/不在办公室)

7 个答案:

答案 0 :(得分:5)

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

X-MICROSOFT-CDO-BUSYSTATUS:FREE

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

答案 1 :(得分:3)

事实证明,在标准中,Sean错过了这个地方:

  

4.2.9忙/闲时间类型

     

参数名称:FBTYPE

     

目的:指定免费或   忙碌时间。

     

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

 fbtypeparam        = "FBTYPE" "=" ("FREE" / "BUSY"
                    / "BUSY-UNAVAILABLE" / "BUSY-TENTATIVE"
                    / x-name
    ; Some experimental iCalendar data type.
                    / iana-token)



    ; Some other IANA registered iCalendar data type.
     

描述:参数   指定空闲或忙碌时间类型。   值FREE表示   时间间隔可供调度。   值BUSY表示时间   间隔很忙,因为一个或   已安排更多活动   那个间隔。值
  BUSY-UNAVAILABLE表示   时间间隔很忙而且那个   间隔不能安排。该   值BUSY-TENTATIVE表示   时间间隔很忙,因为一个   或更多事件已经发生   暂定于此   间隔。如果没有在中指定   允许此参数的属性,   默认为BUSY。

     

示例:以下是   a上此参数的示例   FREEBUSY财产。

 FREEBUSY;FBTYPE=BUSY:19980415T133000Z/19980415T170000Z

答案 2 :(得分:2)

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

无论哪种方式,答案都在vCalendar标准文档中。我认为你的意思是STATUS字段。维基百科有一个这个领域的例子:

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

http://en.wikipedia.org/wiki/VCalendar#vCalendar_1.0

格式的标准文件是:http://www.ietf.org/rfc/rfc2445.txt

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

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

  

4.8.1.11状态

     

物业名称:STATUS

     

目的:此属性定义   总体状态或确认   日历组件。

     

值类型:TEXT

     

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

     

一致性:此属性可以   在“VEVENT”,“VTODO”或
中指定   “VJOURNAL”日历组件。

     

描述:在预定的组中   日历组件,属性为
  用于“组织者”提供的   对事件的确认   “与会者”。例如在“VEVENT”中   日历组件,“组织者”   可以表明会议是   暂定,确认或取消。   在“VTODO”日历组件中,   “组织者”可以表明一个   行动项目需要采取行动,是   已完成,正在进行中或正在进行中   工作,或已被取消。在一个   “VJOURNAL”日历组件,   “组织者”可以表明a   期刊报名是草稿,决赛或   已被取消或删除。

     

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

 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"

答案 3 :(得分:1)

X-MICROSOFT-CDO-BUSYSTATUS:OOF

将“不在办公室”的日历标记为展望

答案 4 :(得分:0)

由于RFC 2445和5545都不支持状态OOO和暂定,您可以使用属性X-MICROSOFT-CDO-INTENDEDSTATUS:https://msdn.microsoft.com/en-us/library/ee203636(v=exchg.80).aspx

答案 5 :(得分:0)

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

X-MICROSOFT-CDO-BUSYSTATUS:TENTATIVE

答案 6 :(得分:0)

我使用python导入win32, 因为这是一个称为BUSYSTATUS的属性, 该值可以定义节目的状态 FREE = 0,1 = TENTIVE,2 = BUSY

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