首页 文章

如何创建包含多个VEVENT的.ICS文件以导入到现有Outlook日历中

提问于
浏览
15

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

BEGIN:VCALENDAR
PRODID:-//Company//Product//EN
VERSION:2.0
METHOD:PUBLISH
BEGIN:VEVENT
SUMMARY:Subject of Event
LOCATION:Location of Event
UID:1227559810-8527e2c-20847@domain.com
DESCRIPTION:Some description
DTEND:20081101T200000Z
DTSTART:20081101T200000Z
PRIORITY:3
END:VEVENT
BEGIN:VEVENT
  ...
END:VEVENT
END:VCALENDAR

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

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

更新:澄清一下,每个VEVENT都与一个“约会”有关 . 然而,可能存在或可能不存在重复模式 .

-麦克风

5 回答

  • 1

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

  • 1

    这可以使用互联网日历(例如Google) . Outlook 2007具有订阅Internet日历的功能(在“帐户设置”下),Outlook 2003具有可用的开源插件 . 您可以创建“只读”的可访问Feed . 格式就像

    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
    
  • 1

    确保为每个VEVENT使用唯一的UID . 如果您为每个VEVENT使用相同的UID,您将看到您正在描述的行为,因为只处理了唯一的UID并将其添加到日历中 .

    HTH .

  • 3

    这应该是可能的:/以下适用于谷歌,并加载随从随从 . 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
    
  • 3

    这是三场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
    

相关问题