Как создать файл .ICS с несколькими VEVENT для импорта в существующий календарь Outlook

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

-Майк


person mwilkes    schedule 02.12.2008    source источник
comment
Это одно и то же свидание, с повторяющейся схемой повторения, или встречи не связаны друг с другом?   -  person Tomalak    schedule 02.12.2008
comment
Это то же самое назначение ... к сожалению, может быть, а может и не быть повторяющейся схемы. Например, он собирается во вторник на этой неделе и в среду на следующей неделе и т. Д.   -  person mwilkes    schedule 02.12.2008
comment
Полагаю, ВБЕГИН - это опечатка?   -  person Tomalak    schedule 02.12.2008
comment
Я считаю, что свойство X-MS-OLK-FORCEINSPECTOROPEN:TRUE предназначено для решения этой проблемы, когда у меня есть несколько VEVENT, он хочет открыть его как новый календарь и сохранить его в разделе «Другие календари».   -  person matt b    schedule 25.04.2012
comment
@mattb таким образом мой прогноз 2013 игнорирует другие события, импортируя только первое   -  person masciugo    schedule 26.05.2017


Ответы (7)


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

person jwmiller5    schedule 02.12.2008
comment
Да, я думал о том же. Однако для подписанного календаря .ics работает несколько событий. - person Tomalak; 03.12.2008
comment
@Bellu Попробуйте открыть ics из Outlook Web Access. Согласно этому сообщению, он работает в OWA, а не в Outlook. answers.microsoft.com/en-us/msoffice/forum/all/ - person jwmiller5; 20.11.2020

Это возможно с помощью Интернет-календаря (например, от 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
person Michael DeLorenzo    schedule 11.02.2009
comment
Пытался использовать это и получил ошибку, что это недопустимый файл ics. - person jcaruso; 24.01.2017

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

HTH.

person James Bonner    schedule 28.06.2010

Это должно быть возможно: / следующее работает с Google и отлично загружается в окружение. У 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:[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
person nzcoops    schedule 22.07.2011

это пример трех матчей 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
person Angel Alzamora    schedule 09.06.2010
comment
Мне интересно проверить этот метод. Похоже, вы можете получить больше примеров на markthisdate.com (откуда, похоже, исходит источник этого примера), хотя я не уверен, будет ли он работать в Outlook или нет (на Mac прямо сейчас) - person cwd; 19.02.2013
comment
Нет, это не потому, что он не импортируется в текущий календарь. - person jcaruso; 24.01.2017

Убедитесь, что у вас есть «X-MS-OLK-FORCEINSPECTOROPEN: TRUE» в части VCALENDAR вашего файла. Это позволяет импортировать файл ICS с несколькими VEVENT в календарь по умолчанию в Outlook. Новый календарь не создан.

person miked    schedule 18.12.2019
comment
Протестировал это, и он, похоже, не работает полностью, по крайней мере, в O365 Outlook. Он предлагает добавить в файл только первый VEVENT - все остальные не добавляются в основной календарь. - person Leniency; 03.01.2020
comment
X-MS-OLK-FORCEINSPECTOROPEN: TRUE влияет только на календарь Outlook, в который добавлено событие. Если вы обрабатываете только первый VEVENT, значит, с вашим файлом ICS есть еще одна проблема. Проблемы, связанные с UID или временем / датой начала, чтобы система могла соответствовать ВЕБЕНЦИЯМ. - person miked; 08.01.2020

Это работает: возьмите файл ICS, перетащите кнопку календаря в Outlook (у меня нижний левый угол). Это добавляет несколько записей в календарь по умолчанию, без каких-либо запросов, если файл ICS содержит несколько vevents. Моя следующая задача - обновить и удалить кратные.

Двойной щелчок по одному и тому же файлу дает очень разные результаты: создается новый календарь, а индикатор занятости игнорируется. При перетаскивании, которое я описал, индикатор занятости остается неизменным, как в файле ICS.

X-MS-OLK-FORCEINSPECTOROPEN: TRUE открывает первую запись, чтобы ее можно было утвердить и добавить. Последующие праздники игнорируются.

X-MS-OLK-FORCEINSPECTOROPEN: FALSE или удаление строки полностью дали мне те же результаты в Outlook 365.

Кроме того, дважды щелкнув файл ICS с несколькими vevents, я увидел следующее: Outlook не полностью совместим, потому что создается новый календарь с именем «без названия». Почтовое приложение, которое поставляется с Windows 10, совместимо, и все записи добавляются в календарь должным образом (может быть, потому что в почтовом приложении Win 10 только 1 календарь? Я не знаю - я пишу только для Outlook)

person JRrelyea    schedule 17.06.2020