I have a need to allow for a user to download an event that has multiple meeting dates. To do this I have created a memorystream to be downloaded which produces a .ics file. For example:
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
If I only include one VEVENT in this file it will save it to my existing Outlook calendar. However, when I have multiple VEVENTs it wants to open it as a new calendar and files it under “Other Calendars”.
Is there a way (without using File – Import from within Outlook) to specify that the calendar should be imported automatically into the existing calendar when opened?
UPDATE: To clarify, each VEVENT is related to a single “Appointment”. However there may or may not be a recurring pattern.
-Mike
Answers:
Thank you for visiting the Q&A section on Magenaut. Please note that all the answers may not help you solve the issue immediately. So please treat them as advisements. If you found the post helpful (or not), leave a comment & I’ll get back to you as soon as possible.
Method 1
I don’t think this will work. Outlook is limited in importing those “open” specs. I had a similar problem trying to import a vCard file with multiple contacts. I ended up splitting the file and writing a script in Outlook to import all the files in a directory.
Method 2
This is possible, using an Internet Calendar (like from Google). Outlook 2007 has the capabilities to subscribe to an Internet Calendar (under Account Settings) and Outlook 2003 has an open-source plug-in available. You could create an accessible feed that is “read-only”. The format is like
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
Method 3
Make sure you are using a unique UID for every VEVENT. If you use the same UID for every VEVENT you would see exactly the behavior you are describing since only unique UID’s are processed and added to the calendar.
HTH.
Method 4
This should be possible :/ the following works with google, and loads fine into entourage. Outlook seems to have some issues though, will keep looking.
NOTE – this does import correctly into outlook when you use file>import etc, it’s only double clicking that causes it to only load the first event.
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:<a href="https://getridbug.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="c8adbcfdfba5fca7a6f9a1a1fff8ada6ffbdbdbef9bca0a2bafdf088afa7a7afa4ade6aba7a5">[email protected]</a> 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:<a href="https://getridbug.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="7c19491a1418161a1a4a0a1d17161a0812104f10450a160f4a48173c1b13131b1019521f1311">[email protected]</a> 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
Method 5
this is an example of three FIFA 2010 matches on outlook, I’m guessing that this is what you are looking for…
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 AnFollow 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:<a href="https://getridbug.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="261616134340134717111647441213151411104747421614171113104313404243664b47544d524e4f55424752430845494b">[email protected]</a>
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 AnFollow 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:<a href="https://getridbug.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="e7ded1d1d7d2ded784d2d6d3d4d2df84d28584828283de82d0d2858283d7d5d5d5a78a86958c938f8e9483869382c984888a">[email protected]</a>
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 BnFollow 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:<a href="https://getridbug.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="a89dc991cdc9cbc99a9c9b9dceca9d9acd99cb919dccccca9f909ece909acdcec9e8c5c9dac3dcc0c1dbccc9dccd86cbc7c5">[email protected]</a>
X-MICROSOFT-CDO-BUSYSTATUS:FREE
X-MICROSOFT-CDO-IMPORTANCE:1
END:VEVENT
END:VCALENDAR
Method 6
Make sure you have “X-MS-OLK-FORCEINSPECTOROPEN:TRUE” in the VCALENDAR part of your file. This allows an ICS file with multiple VEVENTs to import into your default calendar in Outlook. No new calendar created.
Method 7
This works: Take the ICS file, drag & drop on the calendar button in Outlook (bottom left corner on mine). That adds multiple entries to the default calendar, without any prompting when an ICS file contains multiple vevents. Updates & deletes of multiples are my next challenge.
Double clicking the same file has very different results: Creates a new calendar, and the busy indicator is ignored. The drag & drop that I described keeps the busy indicator intact like it is in the ICS file
X-MS-OLK-FORCEINSPECTOROPEN:TRUE opened the 1st entry so it could be approved & added. Subsequent vevents are ignored.
X-MS-OLK-FORCEINSPECTOROPEN:FALSE or removing the line entirely had the same results on Outlook 365 for me.
Also, when double clicking an ICS file with multiple vevents, this is what I saw: Outlook is not entirely compatible because a new calendar gets created named “untitled”. The mail app that comes with Windows 10 is compatible & all entries are added to the calendar properly (might be because the Win 10 mail app only has 1 calendar? I don’t know- I’m writing for Outlook only)
All methods was sourced from stackoverflow.com or stackexchange.com, is licensed under cc by-sa 2.5, cc by-sa 3.0 and cc by-sa 4.0