16

我需要允许用户下载具有多个会议日期的活动。为此,我创建了一个要下载的内存流,它会生成一个 .ics 文件。例如:

开始:VCALENDAR
PRODID:-//公司//产品//EN
版本:2.0
方法:发布
开始:事件
摘要:事件主题
地点:活动地点
UID:1227559810-8527e2c-20847@domain.com
描述:一些描述
DTEND:20081101T200000Z
DTSTART:20081101T200000Z
优先级:3
结束:事件
开始:事件
  ...
结束:事件
结束:VCALENDAR

如果我在这个文件中只包含一个 VEVENT,它会将它保存到我现有的 Outlook 日历中。但是,当我有多个 VEVENT 时,它想将其作为新日历打开并将其归档在“其他日历”下。

有没有办法(不使用文件 - 从 Outlook 中导入)指定日历在打开时应自动导入现有日历?

更新:澄清一下,每个 VEVENT 都与一个“约会”有关。然而,可能有也可能没有重复的模式。

-麦克风

4

7 回答 7

4

我认为这行不通。Outlook 在导入这些“开放”规范方面受到限制。我在尝试导入具有多个联系人的 vCard 文件时遇到了类似的问题。我最终拆分了文件并在 Outlook 中编写了一个脚本来导入目录中的所有文件。

于 2008-12-02T19:21:46.090 回答
3

这是可能的,使用互联网日历(如来自谷歌)。Outlook 2007 具有订阅 Internet 日历(在帐户设置下)的功能,并且 Outlook 2003 具有可用的开源插件。您可以创建一个“只读”的可访问提要。格式就像

BEGIN:VCALENDAR  
PRODID:-//XYZ Corp//My Product//EN  
VERSION:2.0  
CALSCALE:GREGORIAN  
METHOD:PUBLISH  
X-WR-CALNAME:My Calendar  
X-WR-TIMEZONE:(GMT-05:00) Eastern Time (US & Canada)  
BEGIN:VEVENT  
DTSTART:20061021T100000Z  
DTEND:20061021T130000Z  
DTSTAMP:20090211T175526Z  
UID:5f98dfd5-ac72-4ae1-b3c2-799a4e7c91f9  
CLASS:PUBLIC  
CREATED:20071104T183833Z  
DESCRIPTION: My description text.  
LAST-MODIFIED:20071104T183833Z  
LOCATION: 123 Anywhere Street\; Anyplace, NJ 12345\; US  
SEQUENCE:0  
STATUS:CONFIRMED  
SUMMARY: My summary text.  
TRANSP:OPAQUE  
END:VEVENT  
BEGIN:VEVENT  
DTSTART:20061101T170000Z  
DTEND:20061101T180000Z  
DTSTAMP:20090211T175526Z  
UID:6eaef015-eb90-4e94-8e6c-0003b928969a  
CLASS:PUBLIC  
CREATED:20071104T183833Z  
DESCRIPTION: My description for number 2.  
LAST-MODIFIED:20071104T183833Z  
LOCATION: 123 Anywhere Street\; Anyplace, NJ 12345\; US  
SEQUENCE:0  
STATUS:CONFIRMED  
SUMMARY: My summary for #2.  
TRANSP:OPAQUE  
END:VEVENT  
END:VCALENDAR
于 2009-02-11T18:02:53.943 回答
2

确保为每个 VEVENT 使用唯一的 UID。如果您对每个 VEVENT 使用相同的 UID,您将看到您所描述的行为,因为只有唯一的 UID 被处理并添加到日历中。

HTH。

于 2010-06-28T04:45:51.617 回答
1

这是关于前景的三场 FIFA 2010 比赛的示例,我猜这就是您要寻找的...

BEGIN:VCALENDAR

PRODID:-//Microsoft Corporation//Outlook 12.0 MIMEDIR//EN

VERSION:2.0

METHOD:PUBLISH

X-CALSTART:20100611T140000Z

X-CALEND:20100711T201500Z

X-WR-RELCALID:{0000002E-5A22-AA75-713B-5C3715764495}

X-WR-CALNAME: World Cup Football Complete Match Schedule 2010 South Africa

BEGIN:VEVENT

CATEGORIES:World Cup Football Complete Match Schedule 2010 South Africa

CLASS:PUBLIC

CREATED:20100608T231102Z

DESCRIPTION:Group A\nFollow MarkThisDate on Twitter

    markthisdate 

DTEND:20100611T154500Z

DTSTAMP:20100513T100200Z

DTSTART:20100611T140000Z

LAST-MODIFIED:20100608T231102Z

LOCATION:Johannesburg 

PRIORITY:5

SEQUENCE:0

SUMMARY:South Africa - Mexico

TRANSP:TRANSPARENT

UID:005ef5a170ab453276aad021756e5fde@markthisdate.com

X-MICROSOFT-CDO-BUSYSTATUS:FREE

X-MICROSOFT-CDO-IMPORTANCE:1

END:VEVENT

BEGIN:VEVENT

CATEGORIES:World Cup Football Complete Match Schedule 2010 South Africa

CLASS:PUBLIC

CREATED:20100608T231102Z

DESCRIPTION:Group A\nFollow MarkThisDate on Twitter

    markthisdate 

DTEND:20100611T201500Z

DTSTAMP:20100513T100200Z

DTSTART:20100611T183000Z

LAST-MODIFIED:20100608T231102Z

LOCATION:Cape Town 

PRIORITY:5

SEQUENCE:0

SUMMARY:Uruguay - France

TRANSP:TRANSPARENT

UID:9660590c514358c5bceed9e75bed0222@markthisdate.com

X-MICROSOFT-CDO-BUSYSTATUS:FREE

X-MICROSOFT-CDO-IMPORTANCE:1

END:VEVENT

BEGIN:VEVENT

CATEGORIES:World Cup Football Complete Match Schedule 2010 South Africa

CLASS:PUBLIC

CREATED:20100608T231102Z

DESCRIPTION:Group B\nFollow MarkThisDate on Twitter

    markthisdate 

DTEND:20100612T131500Z

DTSTAMP:20100513T100200Z

DTSTART:20100612T113000Z

LAST-MODIFIED:20100608T231102Z

LOCATION:Nelson Mandela Bay/Port Elizabeth 

PRIORITY:5

SEQUENCE:0

SUMMARY:Korea Republic - Greece

TRANSP:TRANSPARENT

UID:5a9eaca2435fb52e1c95ddb786f82efa@markthisdate.com

X-MICROSOFT-CDO-BUSYSTATUS:FREE

X-MICROSOFT-CDO-IMPORTANCE:1

END:VEVENT

END:VCALENDAR
于 2010-06-09T14:26:06.350 回答
1

这应该是可能的:/以下适用于谷歌,并且可以很好地加载到随行人员中。Outlook 似乎有一些问题,但会继续寻找。

注意 - 当您使用文件>导入等时,这确实会正确导入到 Outlook 中,只是双击会导致它只加载第一个事件。

BEGIN:VCALENDAR
PRODID:-//Google Inc//Google Calendar 70.9054//EN
VERSION:2.0
CALSCALE:GREGORIAN
METHOD:PUBLISH
X-WR-CALNAME:Insert something
X-WR-TIMEZONE:Insert something
X-WR-CALDESC:

BEGIN:VEVENT
DTSTART:20110909T180000Z
DTEND:20110909T200000Z
DTSTAMP:20110722T004312Z
UID:et53m4on1ii70en7uuv1thjr58@google.com
CREATED:20110721T105553Z
DESCRIPTION:
LAST-MODIFIED:20110721T105554Z
LOCATION:Insert something
SEQUENCE:0
STATUS:CONFIRMED
SUMMARY:Insert something
TRANSP:OPAQUE
BEGIN:VALARM
ACTION:DISPLAY
DESCRIPTION:This is an event reminder
TRIGGER:-P0DT0H10M0S
END:VALARM
END:VEVENT

BEGIN:VEVENT
DTSTART:20110909T083000Z
DTEND:20110909T103000Z
DTSTAMP:20110722T004312Z
UID:e5fhdjff6vakjftnl3l9vjs64k@google.com
CREATED:20110721T105410Z
DESCRIPTION:
LAST-MODIFIED:20110721T111008Z
LOCATION:Auckland
SEQUENCE:1
STATUS:CONFIRMED
SUMMARY:Insert something
TRANSP:OPAQUE
BEGIN:VALARM
ACTION:DISPLAY
DESCRIPTION:Insert something
TRIGGER:-P0DT0H10M0S
END:VALARM
END:VEVENT

END:VCALENDAR
于 2011-07-22T00:48:30.150 回答
1

确保文件的 VCALENDAR 部分中有“X-MS-OLK-FORCEINSPECTOROPEN:TRUE”。这允许将具有多个 VEVENT 的 ICS 文件导入 Outlook 中的默认日历。未创建新日历。

于 2019-12-18T19:09:04.500 回答
0

这有效:获取 ICS 文件,拖放到 Outlook 中的日历按钮(我的左下角)。这会在默认日历中添加多个条目,而当 ICS 文件包含多个事件时,不会出现任何提示。更新和删除倍数是我的下一个挑战。

双击同一个文件有非常不同的结果:创建一个新日历,忙碌指示符被忽略。我描述的拖放保持忙碌指示器完好无损,就像它在 ICS 文件中一样

X-MS-OLK-FORCEINSPECTOROPEN:TRUE 打开了第一个条目,因此它可以被批准和添加。随后的 vevents 将被忽略。

X-MS-OLK-FORCEINSPECTOROPEN:FALSE 或完全删除该行在 Outlook 365 上对我来说具有相同的结果。

此外,当双击具有多个 vevents 的 ICS 文件时,我看到的是: Outlook 不完全兼容,因为创建了一个名为“无标题”的新日历。Windows 10 附带的邮件应用程序兼容并且所有条目都正确添加到日历中(可能是因为 Win 10 邮件应用程序只有 1 个日历?我不知道 - 我只为 Outlook 编写)

于 2020-06-17T13:31:58.957 回答