ICalendar 和事件更新在 Outlook 中不起作用

发布于 2024-07-04 09:38:01 字数 212 浏览 8 评论 0原文

我正在生成 ICalendar (.ics) 文件。

使用 UID 和 SEQUENCE 字段,我可以在 MS Outlook 2007 中更新 Google 日历和 Windows 日历中的现有事件但不能 - 它只会创建第二个事件

我如何获取它们为 Outlook 工作?

谢谢

汤姆

I'm generating ICalendar (.ics) files.

Using the UID and SEQUENCE fields I can update existing events in Google Calendar and in Windows Calendar BUT NOT in MS Outlook 2007 - it just creates a second event

How do I get them to work for Outlook ?

Thanks

Tom

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(5

拥抱没勇气 2024-07-11 09:38:01

我联系了提问者汤姆·卡特。 他有一个工作示例,其中包含请求,然后取消。 我的错误是我的方法在我的 VEVENT 内部,而它本应在外部。 这是一个工作更新!

原文:

BEGIN:VCALENDAR
VERSION:2.0
PRODID:-//WA//FRWEB//EN
METHOD:REQUEST
BEGIN:VEVENT
UID:FRICAL201
SEQUENCE:0
DTSTAMP:20081108T151809Z
ORGANIZER:[email protected]
DTSTART:20081109T121200
SUMMARY:11/9/2008 12:12:00 PM TRIP FROM JFK AIRPORT (JFK)
LOCATION:JFK AIRPORT (JFK)
END:VEVENT
END:VCALENDAR

更新:

BEGIN:VCALENDAR
VERSION:2.0
PRODID:-//WA//FRWEB//EN
METHOD:REQUEST
BEGIN:VEVENT
UID:FRICAL201
SEQUENCE:1
DTSTAMP:20081108T161809Z
ORGANIZER:[email protected]
DTSTART:20081109T121300
SUMMARY:11/9/2008 12:13:00 PM TRIP FROM JFK AIRPORT (JFK)
LOCATION:JFK AIRPORT (JFK)
END:VEVENT
END:VCALENDAR

我所做的只是添加请求方法(在正确的位置!)和组织者。

I got a hold of Tom Carter, the asker. He had a working example with a request followed by a cancellation. What I had wrong was my METHOD was inside my VEVENT when it should have been outside. So here is a working update!

Original:

BEGIN:VCALENDAR
VERSION:2.0
PRODID:-//WA//FRWEB//EN
METHOD:REQUEST
BEGIN:VEVENT
UID:FRICAL201
SEQUENCE:0
DTSTAMP:20081108T151809Z
ORGANIZER:[email protected]
DTSTART:20081109T121200
SUMMARY:11/9/2008 12:12:00 PM TRIP FROM JFK AIRPORT (JFK)
LOCATION:JFK AIRPORT (JFK)
END:VEVENT
END:VCALENDAR

Update:

BEGIN:VCALENDAR
VERSION:2.0
PRODID:-//WA//FRWEB//EN
METHOD:REQUEST
BEGIN:VEVENT
UID:FRICAL201
SEQUENCE:1
DTSTAMP:20081108T161809Z
ORGANIZER:[email protected]
DTSTART:20081109T121300
SUMMARY:11/9/2008 12:13:00 PM TRIP FROM JFK AIRPORT (JFK)
LOCATION:JFK AIRPORT (JFK)
END:VEVENT
END:VCALENDAR

All I did was add the request method (in the correct spot!), and an organizer.

此岸叶落 2024-07-11 09:38:01

我正在使用 Outlook 2003(从阅读帖子来看,2007 似乎以相同的方式运行),您需要清楚地区分 ics 文件的显式文件导入和“双击 ics 文件时的隐式导入”的行为'。

在 Outlook 菜单文件/导入和导出...Outlook 将加载与文件中一样多的 VEVENT 条目,并且无需更改 UID:、SEQUENCE: 或 DTSTAMP: 值即可更改此设置,即如果您更改任何数据并重新导入你只会得到一组重复的条目。

如果双击 ics 文件,它将仅处理第一个 VEVENT 条目。 但是,它确实可以识别 UID,并且如果 DTSTAMP: 较晚(SEQUENCE 可以相同但不能更低),系统会提示您,并且会更新日历中的事件。

BEGIN:VCALENDAR
VERSION:2.0
PRODID:www.membership-services.net
METHOD:REQUEST
BEGIN:VEVENT
DTSTART:20090126T210000
DTEND:20090126T220000
SUMMARY:Avondale - Thameside Away Game vs Croydon
LOCATION:Whitgift School
DESCRIPTION:http://maps.google.co.uk/maps?f=q&hl=en&geocode=&q=CR2+6YT 
UID:AWPC_8
SEQUENCE:0
DTSTAMP:20090123T112600
END:VEVENT
BEGIN:VEVENT
DTSTART:20090202T213000
DTEND:20090202T223000
SUMMARY:Avondale - Thameside Home Game vs Orcas
LOCATION:Putney
DESCRIPTION:http://maps.google.co.uk/maps?f=q&source=s_q&hl=en&ie=UTF8&ll=51.4635,-0.2285&spn=0.005,0.009613&t=h&z=17&iwloc=lyrftr:w2t.90,0x48760f04a04b1801:0x49ebf12503a5d5a9,51.463459,-0.228674 
UID:AWPC_10
SEQUENCE:0
DTSTAMP:20090123T112600
END:VEVENT
END:VCALENDAR

I am using outlook 2003 (from reading the posts, 2007 appears to behave in the same way) and you need to clearly distinguish between the behaviour of the explicit file import of an ics file and the implicit import when an ics file is 'double clicked'.

On the Outlook menu File / Import and Export ... Outlook will load as many VEVENT entries as are in the file and no amount of changing UID:, SEQUENCE: or DTSTAMP: values changes this, i.e.if you change any data and re-import it you just get a duplicate set of entries.

If you double click on an ics file it processes the first VEVENT entry only. However it does recognise the UID and, if the DTSTAMP: is later (the SEQUENCE can be the same but not lower) you will be prompted and it will update the event in your calendar.

BEGIN:VCALENDAR
VERSION:2.0
PRODID:www.membership-services.net
METHOD:REQUEST
BEGIN:VEVENT
DTSTART:20090126T210000
DTEND:20090126T220000
SUMMARY:Avondale - Thameside Away Game vs Croydon
LOCATION:Whitgift School
DESCRIPTION:http://maps.google.co.uk/maps?f=q&hl=en&geocode=&q=CR2+6YT 
UID:AWPC_8
SEQUENCE:0
DTSTAMP:20090123T112600
END:VEVENT
BEGIN:VEVENT
DTSTART:20090202T213000
DTEND:20090202T223000
SUMMARY:Avondale - Thameside Home Game vs Orcas
LOCATION:Putney
DESCRIPTION:http://maps.google.co.uk/maps?f=q&source=s_q&hl=en&ie=UTF8&ll=51.4635,-0.2285&spn=0.005,0.009613&t=h&z=17&iwloc=lyrftr:w2t.90,0x48760f04a04b1801:0x49ebf12503a5d5a9,51.463459,-0.228674 
UID:AWPC_10
SEQUENCE:0
DTSTAMP:20090123T112600
END:VEVENT
END:VCALENDAR
岁月苍老的讽刺 2024-07-11 09:38:01

将其添加到您的 ICS 文件中

X-WR-RELCALID:MyCal123   

,其中 MyCal123 是您日历的唯一标识符。

通过将此行添加到 ICS 文件中,整个日历都会更新(在 Outlook 中出现提示后)。 您甚至不需要更改 DTSTAMP 或 SEQUENCE 或 ORGANIZER 和 METHOD:PUBLISH 就可以进行更新。 只需更新活动详细信息,双击 ICS,日历就会更新。 请注意,如果您已发布日历并提供了 URL 供人们查看,这也可以正常工作。 他们只需要在大约 2 分钟后点击刷新,他们也会收到更新。

感谢 David Bjørnhart 指出这一点: ICal 导入创建打开 ics 文件时的新日历

add this to your ICS file

X-WR-RELCALID:MyCal123   

where MyCal123 is a unique identifier for your calendar.

By adding this line to an ICS file the entire calendar gets updated (after a prompt in Outlook). You don't even need to change the DTSTAMP or SEQUENCE or ORGANIZER and METHOD:PUBLISH is fine for the update. Just update the event details, double-click the ICS and the calendar will update. Note that this also works fine if you have published the calendar and provided a URL for people to view it. They just need to hit refresh after about 2mins and they will also get the update.

Thanks to David Bjørnhart for pointing this out: ICal import creates new calendar When Open the ics file

心作怪 2024-07-11 09:38:01

我正在使用 Entourage,因此这可能与您所看到的行为不完全匹配,但我希望它有所帮助。

使用您回复中的 iCalendar,Entourage 甚至不会导入数据。 使用已知良好的文件,我将其导入,然后成功更新。 比较这两个文件,唯一的结构差异如下:

  • 我的已知良好没有 VERSION 元素
  • 的已知良好没有 PRODID 元素
  • 我的已知良好没有 PRODID 元素我 known-good 没有 STATUS 元素
  • 我的known-good 没有 SEQUENCE 元素

由于 Microsoft 对开放标准的支持往往滞后,我建议尝试没有 VERSION 信息。

I'm using Entourage, so this may not match up exactly with the behavior you're seeing, but I hope it helps.

Using the iCalendar from your reply, Entourage wouldn't even import the data. Using a known-good file, I got it to import, then successfully update. Comparing the two files, the only structural differences are as follows:

  • My known-good doesn't have a VERSION element
  • My known-good doesn't have a PRODID element
  • My known-good doesn't have a STATUS element
  • My known-good doesn't have a SEQUENCE element

Since Microsoft's support for open standards tends to lag, I'd suggest trying without the VERSION info.

故人的歌 2024-07-11 09:38:01

我继续进行了一些测试,现在已成功让 Outlook 根据 .cs 文件更新和取消事件。

Outlook 实际上似乎响应 RFC 2446 中定义的

规则 还必须指定

METHOD:REQUESTORGANIZER:xxxxxxxx

摘要除了 UID: 和 SEQUENCE: 之外,

您 取消您必须指定METHOD:CANCEL

请求/更新示例

BEGIN:VCALENDAR
VERSION:2.0
PRODID:-//SYFADIS//PORTAIL FORMATION//FR
METHOD:REQUEST
BEGIN:VEVENT
UID:[email protected]
SEQUENCE:5
DTSTAMP:20081106T154911Z
ORGANIZER:[email protected]
DTSTART:20081113T164907
DTEND:20081115T170000
SUMMARY:TestTraining
STATUS:CONFIRMED
END:VEVENT
END:VCALENDAR

取消示例;

BEGIN:VCALENDAR
VERSION:2.0
PRODID:-//SYFADIS//PORTAIL FORMATION//FR
METHOD:CANCEL
BEGIN:VEVENT
UID:[email protected]
SEQUENCE:7
DTSTAMP:20081106T154916Z
ORGANIZER:[email protected]
DTSTART:20081113T164907
SUMMARY:TestTraining
STATUS:CANCELLED
END:VEVENT
END:VCALENDAR

I've continued to do some testing and have now managed to get Outlook to update and cancel events based on the .cs file.

Outlook in fact seems to respond to the rules defined in RFC 2446

In summary you have to specify

METHOD:REQUEST and ORGANIZER:xxxxxxxx

in addition to UID: and SEQUENCE:

For a cancellation you have to specify METHOD:CANCEL

Request/Update Example

BEGIN:VCALENDAR
VERSION:2.0
PRODID:-//SYFADIS//PORTAIL FORMATION//FR
METHOD:REQUEST
BEGIN:VEVENT
UID:[email protected]
SEQUENCE:5
DTSTAMP:20081106T154911Z
ORGANIZER:[email protected]
DTSTART:20081113T164907
DTEND:20081115T170000
SUMMARY:TestTraining
STATUS:CONFIRMED
END:VEVENT
END:VCALENDAR

Cancel Example;

BEGIN:VCALENDAR
VERSION:2.0
PRODID:-//SYFADIS//PORTAIL FORMATION//FR
METHOD:CANCEL
BEGIN:VEVENT
UID:[email protected]
SEQUENCE:7
DTSTAMP:20081106T154916Z
ORGANIZER:[email protected]
DTSTART:20081113T164907
SUMMARY:TestTraining
STATUS:CANCELLED
END:VEVENT
END:VCALENDAR
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文