Как создать файл .ICS с несколькими VEVENT для импорта в существующий календарь Outlook - PullRequest
15 голосов
/ 02 декабря 2008

Мне нужно разрешить пользователю загружать событие, которое имеет несколько дат проведения собраний. Для этого я создал загружаемый поток памяти, который создает файл .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 связан с одной "Встречей". Однако может быть или не быть повторяющегося шаблона.

-Mike

Ответы [ 5 ]

3 голосов
/ 11 февраля 2009

Это возможно, используя Интернет-календарь (например, от 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 голосов
/ 02 декабря 2008

Не думаю, что это сработает. Outlook ограничен в импорте этих «открытых» спецификаций. У меня была похожая проблема при попытке импортировать файл vCard с несколькими контактами. Я закончил тем, что разделил файл и написал сценарий в Outlook для импорта всех файлов в каталоге.

2 голосов
/ 28 июня 2010

Убедитесь, что вы используете уникальный UID для каждого VEVENT. Если вы используете один и тот же UID для каждого VEVENT, вы увидите именно то поведение, которое вы описываете, поскольку только уникальные UID обрабатываются и добавляются в календарь.

НТН.

1 голос
/ 22 июля 2011

Это должно быть возможно: / следующее работает с Google, и прекрасно загружается в окружение. Outlook, кажется, есть некоторые проблемы, хотя, будет продолжать искать.

ПРИМЕЧАНИЕ - это правильно импортирует в outlook, когда вы используете file> 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: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
1 голос
/ 09 июня 2010

это пример трех матчей 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
...