Как создать файл .ICS с несколькими VEVENT, которые будут импортированы в существующий календарь Outlook
Мне нужно разрешить пользователю загружать событие с несколькими датами собрания. Для этого я создал загружаемый memystream, который создает файл .ics. Например:
BEGIN:VCALENDAR
PRODID:-//Company//Product//EN
VERSION:2.0
METHOD:PUBLISH
BEGIN:VEVENT
SUMMARY:Subject of Event
LOCATION:Location of Event
UID:[email protected]
DESCRIPTION:Some description
DTEND:20081101T200000Z
DTSTART:20081101T200000Z
PRIORITY:3
END:VEVENT
BEGIN:VEVENT
...
END:VEVENT
END:VCALENDAR
Если я включу только один файл VEVENT в этот файл, он сохранит его в моем существующем календаре Outlook. Однако, когда у меня есть несколько VEVENT, он хочет открыть его как новый календарь и записывать его в "Другие календари".
Есть ли способ (без использования файла - импорт из Outlook), чтобы указать, что календарь должен автоматически импортироваться в существующий календарь при открытии?
ОБНОВЛЕНИЕ: Чтобы уточнить, каждый VEVENT связан с одним "Назначением". Однако может быть или не быть повторяющимся образцом.
-Mike
Ответы
Ответ 1
Я не думаю, что это сработает. Перспектива ограничена в импорте этих "открытых" спецификаций. У меня была аналогичная проблема с попыткой импортировать файл vCard с несколькими контактами. Я закончил разделение файла и запись script в Outlook для импорта всех файлов в каталог.
Ответ 2
Это возможно, используя интернет-календарь (например, Google). В Outlook 2007 есть возможности подписаться на Интернет-календарь (в разделе "Настройки учетной записи" ), а 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
Ответ 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:[email protected]
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:[email protected]
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:[email protected]
X-MICROSOFT-CDO-BUSYSTATUS:FREE
X-MICROSOFT-CDO-IMPORTANCE:1
END:VEVENT
END:VCALENDAR
Ответ 4
Убедитесь, что вы используете уникальный UID для каждого VEVENT. Если вы используете один и тот же UID для каждого VEVENT, вы увидите точно поведение, которое вы описываете, поскольку только уникальный UID обрабатывается и добавляется в календарь.
НТН.
Ответ 5
Это должно быть возможно:/следующее работает с google и загружается в антураж. У Outlook, кажется, есть некоторые проблемы, хотя, будет продолжать искать.
ПРИМЕЧАНИЕ. Это правильно импортируется в Outlook при использовании файлa > import и т.д., это только двойной щелчок, который заставляет его загружать только первое событие.
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:[email protected]
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:[email protected]
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