我正在与icalndar约会一代做一些工作;这将允许代表查看活动的网站并单击提供的链接将约会添加到他们的日历中。
我有一个工作程序集,它将根据一组已知的信息(开始日期、结束日期、标题等)生成 ics 格式的输出(作为物理文件或流)。
我为日历约会生成的输出示例如下:
BEGIN:VCALENDAR
PRODID:-//Microsoft Corporation//Outlook 12.0 MIMEDIR//EN
VERSION:2.0
METHOD:PUBLISH
X-MS-OLK-FORCEINSPECTOROPEN:TRUE
BEGIN:VEVENT
CLASS:PUBLIC
CREATED:20110210T124703Z
DESCRIPTION:Anything Else\n\nHopefully some useful information would be written here\n
DTEND:20110212T100000Z
DTSTAMP:20110210T124600Z
DTSTART:20110212T090000Z
LAST-MODIFIED:20110210T124703Z
LOCATION:Dummy Location
PRIORITY:5
SEQUENCE:0
SUMMARY;LANGUAGE=en-us:Dummy Meeting
TRANSP:OPAQUE
UID:040000008200E00074C5B7101A82E00800000000B0D1061C57C8CB01000000000000000
010000000281117EDC1194242B64F0247C54DB401
X-ALT-DESC;FMTTYPE=text/html:<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">\n<HTML>\n<HEAD>\n<META HTTP-EQUIV="Content-Type" CONTENT="text/html\; charset=Windows-1252">\n<META NAME="Generator" CONTENT="MS Exchange Server
version 6.5.7654.12">\n<TITLE>Dummy Meeting</TITLE>\n</HEAD>\n<BODY>\n<!-
- Converted from text/plain format -->\n\n<P><FONT SIZE=2><\;h1>\;Anyt
hing Else<\;/h1>\;<\;p>\;Hopefully some useful information would b
e written here<\;/p>\;<BR>\n</FONT>\n</P>\n\n</BODY>\n</HTML>
X-MICROSOFT-CDO-BUSYSTATUS:BUSY
X-MICROSOFT-CDO-IMPORTANCE:1
END:VEVENT
END:VCALENDAR
我被问到的是;是否可以更改约会,但下次有人请求提醒时,它会检测到该约会已存在于其日历中并进行更新,而不是创建新条目?
所以我想知道是否可以覆盖现有的日历约会。
我注意到有一个 UID 值,我尝试保持该值相同,但它似乎没有提供日历约会之间的链接。
日历约会上的“保存并关闭”操作是否可能会生成新的 UID,因此不再有链接?
我还能尝试什么?
可以更新约会,但不能按照您的方式更新。重要的是:
-
METHOD
应该REQUEST
- a PUBLISH
活动不会更新,会不断添加。REQUEST
会议请求的行为有所不同,甚至会在用户批准之前更新现有会议。我要注意的是,如果事件已经是“发布”类型,则它们无法更新(至少据我所知)。
- 您必须使用完全相同的
UID
.
-
DTSTAMP
应大于现有日期戳(如果您动态创建它,这应该没问题)
- 包括一个
ORGANIZER
- Outlook 可能不允许人们在没有它的情况下接受会议(并不真正相关,但很重要)。
我有一个partial我的博客对此进行了总结 -通过 ASP.NET 邮件消息向 Outlook 发送会议请求 http://kobikobi.wordpress.com/2009/01/03/sending-meeting-requests-to-outlook-via-aspnet-mail-message/,尽管缺少向组织者发送批准和时区(这非常重要,所以我听说)。
也可以看看:RFC 2446 - iTIP http://www.ietf.org/rfc/rfc2446.txt, 搜索部分1.3 ITIP 角色和交易
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)