我想做的是 我需要给我的客户 .ics
文件,只要他们下载并双击(并选择填充他们的Outlook日历),就会填充他们的Outlook日历。
当我在本地测试时,如果我将Outlook设置为工作状态,下面的iCalendar代码可以正常工作。offline
- 产生一个UID once
每一个事件,我都可以重复使用同一个文件,新的事件就会出现。not
生成 - 因为UID被Outlook识别为已经存在。(所以我可以依靠UID来更新,也可以取消)
问题是,当我与一个 online
Outlook,一个随机的UID(112个字符长)每次我使用该文件来填充日历--即使是相同的事件--都会生成一个重复的事件。every time!
.ics文件的例子。
BEGIN:VCALENDAR
VERSION:2.0
METHOD:PUBLISH
PRODID:-//PYVOBJECT//NONSGML Version 1//EN
BEGIN:VEVENT
UID:12345
DTSTART:20190715T020222Z
DTEND:20190715T030222Z
DESCRIPTION:Some fake summary - first event
DTSTAMP:20190715T010222Z
SEQUENCE:0
SUMMARY:this is the first event summary
END:VEVENT
BEGIN:VEVENT
UID:67890
DTSTART:20190715T040222Z
DTEND:20190715T050222Z
DESCRIPTION:Some fake summary - second event
DTSTAMP:20190715T010222Z
SEQUENCE:0
SUMMARY:this is the second event summary
END:VEVENT
END:VCALENDAR
如果我为第一个事件生成一个.ics文件,当Outlook是 online
(拖拽出日历)我看到Outlook增加了一堆新字段。
BEGIN:VCALENDAR
VERSION:2.0
PRODID:-//Microsoft Corporation//Outlook for Mac MIMEDIR//EN
METHOD:PUBLISH
BEGIN:VTIMEZONE
TZID:Pacific Time (US & Canada)
X-ENTOURAGE-CFTIMEZONE:US/Pacific
X-ENTOURAGE-TZID:1
BEGIN:STANDARD
RRULE:FREQ=YEARLY;INTERVAL=1;BYSECOND=0;BYMINUTE=0;BYHOUR=2;BYDAY=1SU;BYMONTH=11
TZOFFSETFROM:-0700
TZOFFSETTO:-0800
DTSTART:20071104T020000
END:STANDARD
BEGIN:DAYLIGHT
RRULE:FREQ=YEARLY;INTERVAL=1;BYSECOND=0;BYMINUTE=0;BYHOUR=2;BYDAY=2SU;BYMONTH=3
TZOFFSETFROM:-0800
TZOFFSETTO:-0700
DTSTART:20070311T020000
END:DAYLIGHT
END:VTIMEZONE
BEGIN:VEVENT
UID:<a NEW 112 character id - NOT the one I added myself>
X-ENTOURAGE_UUID:81760164-FB2C-4421-B7AC-2E1791265F0A
X-MICROSOFT-EXCHANGE-ID:<base64, 140 character id>
X-MICROSOFT-EXCHANGE-CHANGEKEY:<base64, 32 character id>
DTSTAMP:20190715T023949Z
DTSTART;TZID="Pacific Time (US & Canada)":20190714T190200
DTEND;TZID="Pacific Time (US & Canada)":20190714T200200
LAST-MODIFIED:20190715T023949Z
SUMMARY:this is the first event summary
DESCRIPTION:Some fake summary - first event
ORGANIZER:MAILTO:<the real account owner email - my email>
SEQUENCE:0
X-MICROSOFT-CDO-BUSYSTATUS:BUSY
X-MICROSOFT-CDO-ALLDAYEVENT:FALSE
X-MICROSOFT-DISALLOW-COUNTER:TRUE
X-MICROSOFT-DONOTFORWARDMEETING:FALSE
X-MICROSOFT-CDO-INSTTYPE:0
END:VEVENT
END:VCALENDAR
我试了一下: 1. 修改了。METHOD:REQUEST
2. 添加了 X-WR-RELCALID:some_unique_id
从这个职位 3. 序列似乎没有帮助--它只是为了在同一个文件中找出两个相同的UID 4. 我添加了 ORGANIZER;CN=Fable mail:MAILTO:[email protected]
每一个事件 - 它有相同的问题,UID,并被忽略(我的电子邮件被添加为组织者)5。我添加了 ATTENDEE:MAILTO:[email protected]
所谓 此职位但这似乎没有任何区别
是不是因为我没有使用 推荐标准 为UID?好像是防止碰撞的建议,没别的意思。
谢谢你!我想做的是
当你通过桌面浏览器将.ics文件上传到outlook live时,我已经用edge mobile设置为桌面,并选择了 添加日历 在扩展的左侧栏中,随后是 上传文件 在下面的选择菜单中,UID不会被替换。
P.S.通过outlook邮件输入数据,即使符合规范中的官方建议,也会替换UID。