ical sync with basic auth under outlook - outlook

I've got a problem with ical sync with outlook.
My implementation works with other calendars like macOS, iOS calendars and thunderbird.
Outlook can't seem to find the calendar though.
Whenever I add the calendar in Outlook 2013 or 2010 it suggests that it correctly imported the calendar, doesn't display anything nor does it ask for authentication.
Although the ical file needs Basic Auth.
Any Ideas what Outlook does different or how I could further debug it?
Sample URL:
https://domain/caldav/2abd35d3-3b21-479f-85aa-a91598a686db.ics
URL for outlook:
webcal://domain/caldav/2abd35d3-3b21-479f-85aa-a91598a686db.ics
Sample Ical:
BEGIN:VCALENDAR
VERSION:2.0
PRODID:-//schuchert//factro//EN
BEGIN:VEVENT
UID:02427fd7-2003-493e-93be-7f8e2679c478#factro
SEQUENCE:0
DTSTAMP:20170116T110547Z
DTSTART:20150824T063000Z
DTEND:20150824T151500Z
SUMMARY:Refactoring im Frontend
ORGANIZER;CN="marudor":mailto:marudor#marudor.de
END:VEVENT
END:VCALENDAR

Not sure about authentication itself but found out that for https you need to use webcals rather than webcal

Related

Cancelled mail ics showing "not supported"

Canceled invitation emails send to outlook has an attachment "not supported". This is the ics i'm using for cancel email invitation. Could someone help me to understand what i'm missing here.
PS: Gmail is able to parse this ics and it is removing the event from calendar.
BEGIN:VCALENDAR
VERSION:2.0
METHOD:CANCEL
PRODID:-//PYVOBJECT//NONSGML Version 1//EN
BEGIN:VEVENT
UID:fwefgWuxV6DNc1#QnzyZWc38uhPXw2
DTSTART:20190709T084500Z
DTEND:20190709T094500Z
ATTENDEE;CUTYPE=INDIVIDUAL;ROLE=REQ-PARTICIPANT;PARTSTAT=DECLINED:mailto:p
rhrsei#helonp.com
CREATED:20190709T082113Z
DESCRIPTION:\nanfirst anlast has can
celled this meeting.\n\n************************************************\n
\nMessage/Description: canceled \n\n\n************************************
************\n\nHelop Company\n
DTSTAMP:20190709T082204Z
LAST-MODIFIED:20190709T082205Z
LOCATION:
ORGANIZER:mailto:reiuhfoiwetransf#helonp.com
SEQUENCE:1
STATUS:CANCELLED
SUMMARY:asia singapaore
TRANSP:OPAQUE
END:VEVENT
END:VCALENDAR
The above is working with an outlook exchange server, but it is failing on o365 desktop client and even in office web app.
I ran into a same issue recently and just figured out the solution.
Looks like Microsoft has updated how they valuate Ical emails.
So it's not the ICS file that's corrupted, but if you're sending out a cancellation, you'll probably have some header that may say method=REQUEST. This works on all platforms but looks like Microsoft is checking if this is method=CANCEL for cancellation emails.
If you have a header of method=REQUEST and your ICS file is meant to cancel a meeting, it will then be corrupt. You'll have to change it to method=CANCEL.
Hope that helps!

iCal file doesn't import VALARM alerts into outlook as Internet Calendar

If I download my generated ICS file and import into Outlook as as a file (essentially just creating a snapshot) then the VALARM I have set works correctly.
What I want is a ical feed that will synchronize with the server. So when I create an Internet Calendar (Add/Open Calendar -> From Internet) using my ICS file URL all the events are created correctly and synchronizing works, but the VALARM is ignored and not set
BEGIN:VCALENDAR
VERSION:2.0
PRODID:Appointment Calendar
METHOD:PUBLISH
SOURCE:ICAL-URL
X-WR-CALNAME:Appointments
X-WR-CALDESC:Calendar
BEGIN:VEVENT
UID:84fbfa16-ab3a-4313-b98b-638da09a8a1c
DTSTAMP:20190107T190135Z
SUMMARY:My Event
DTSTART:20190109T183000Z
DTEND:20190109T184500Z
CATEGORIES:Red Category
BEGIN:VALARM
ACTION:DISPLAY
TRIGGER:-PT15M
DESCRIPTION:Alert
END:VALARM
END:VEVENT
END:VCALENDAR
Am I doing something wrong or is VALARM not supported for internet calendars in outlook? When I do this in Thunderbird w/ Lightning plug-in then it works great. So I'm assuming there is some MS specific formatting I'm missing?
I am using Outlook 2016 for my testing. I read that some people have success with logging into Office365 and importing calendars from the dashboard but this did not work for me either. I have tried formatting my URL with both http:// and webcal://

.ics Calendar File always appears as busy in Outlook for Mac

I am attempting to send out .ics calendar event files which can be downloaded by users and saved to their Outlook calendars. The calendar event needs to appear as “Free” in Outlook. Below is a sample of the .ics event currently being sent out:
BEGIN:VCALENDAR
VERSION:2.0
PRODID:http://company.ical.cls
BEGIN:VEVENT
DTSTART:20180425
SUMMARY:PTO for Babcock, Michael (22.5hrs)
DTEND:20180428
FREEBUSY:FREE
END:VEVENT
END:VCALENDAR
When an Outlook for Windows user downloads the above file and opens it in their Outlook calendar, the event appears correctly as Free time.
When an Outlook for Mac user downloads the above file it creates a new email with the .ics file attached.
To try to correct the problem for Mac users, I edited the FREEBUSY keyword several times to appear as:
FBTYPE:FREE:20180425T000000Z/20180428T000000Z
FBTYPE:20180426T000000Z/20180429T000000Z
FREEBUSY;FBTYPE=FREE:20180416T133000Z/20180429T170000Z
Outlook for Mac users could download the file with one of those new FreeBusy keywords and open it in their calendar, but it always appears as Busy. The strange thing is, if they open the file with the modified keyword on a Windows computer first, then the appointment appears as free on both Windows and Mac Outlook.
Has anyone found a FreeBusy keyword that allows Outlook for Mac users to see .ics calendar appointments as Free?
The 'Freebusy' component is VFREEBUSY, not VEVENT. Please see the RFC5545 specification. https://www.rfc-editor.org/rfc/rfc5545#section-3.6.4
VFREEBUSY cannot be nested under VEVENT. Also it does NOT say that FREEBUSY property can be used in VEVENT. The spec at https://www.rfc-editor.org/rfc/rfc5545#section-3.8.2.6 says:
FREEBUSY..... Conformance: The property can be specified in a
"VFREEBUSY" calendar
component.
...
The following is an example of a "VFREEBUSY" calendar component
used to publish busy time information:
BEGIN:VFREEBUSY
UID:19970901T115957Z-76A912#example.com
DTSTAMP:19970901T120000Z
ORGANIZER:jsmith#example.com
DTSTART:19980313T141711Z
DTEND:19980410T141711Z
FREEBUSY:19980314T233000Z/19980315T003000Z
FREEBUSY:19980316T153000Z/19980316T163000Z
FREEBUSY:19980318T030000Z/19980318T040000Z
URL:http://www.example.com/calendar/busytime/jsmith.ifb
END:VFREEBUSY
FREEBUSY is for requesting/responding/publishing availability windows.
To make the event appear in the calendar with the Free/Busy flag set to Free, use TRANSP:TRANSPARENT and X-MICROSOFT-CDO-BUSYSTATUS:FREE
For example:
BEGIN:VCALENDAR
VERSION:2.0
PRODID:http://company.ical.cls
BEGIN:VEVENT
DTSTART:20180425
SUMMARY:PTO for Babcock, Michael (22.5hrs)
DTEND:20180428
TRANSP:TRANSPARENT
X-MICROSOFT-CDO-BUSYSTATUS:FREE
END:VEVENT
END:VCALENDAR

Opening ICS file with multiple events creates new calendar in Outlook

I would like to be able to create an ICS file with multiple events that user will be able to import in their default Exchange Calendar. I need to support Outlook desktop client, Office 365 web interface and Apple iPhone Mail/Calendar.
Note that issue only occurs with ICS files that contain multiple events. Single event ICS works as expected.
Following multi-event ICS file:
BEGIN:VCALENDAR
VERSION:2.0
PRODID:-//bobbin v0.1//NONSGML iCal Writer//EN
CALSCALE:GREGORIAN
METHOD:PUBLISH
BEGIN:VEVENT
DTSTART:20180327T080000Z
DTEND:20180327T110000Z
DTSTAMP:20091130T213238Z
UID:1285935469767a7c7c1a9b3f0df8003a#yourserver.com
CREATED:20091130T213238Z
DESCRIPTION:Example event 1
LAST-MODIFIED:20091130T213238Z
SEQUENCE:0
STATUS:CONFIRMED
SUMMARY:Example event 1
TRANSP:OPAQUE
END:VEVENT
BEGIN:VEVENT
DTSTART:20180328T120000Z
DTEND:20180328T130000Z
DTSTAMP:20091130T213238Z
UID:1285935469767a7c7c1a9b3f0df8003b#yourserver.com
CREATED:20091130T213238Z
DESCRIPTION:Example event 2
LAST-MODIFIED:20091130T213238Z
SEQUENCE:0
STATUS:CONFIRMED
SUMMARY:Example event 2
TRANSP:OPAQUE
END:VEVENT
END:VCALENDAR
works fine in Office 365 web interface and Apple iPhone Mail/Calendar. However, when it is imported in Outlook 2016 it creates a new "Untitled" Calendar and puts events in it instead of default user calendar.
This seems to be a known issue referenced previously on SO:
ICal import creates new calendar When Open the ics file
Have ICS file with multiple events save to my Calendar, not Other Calendars
Answers range from "it cannot be done" to the opposite.
One of the posts in the first link mentions removing X-WR-CALNAME from ICS fixes the problem. I never had this in ICS to begin with.
Another post on the same page mentions that adding X-WR-RELCALID:XXXXXX fixes it. I tried putting it in and it makes no difference at all. I am not sure if value for X-WR-RELCALID should be set to something specific - I just set it to some GUID.
If someone successfully resolved it - can you post an ICS sample and what version of Outlook did it work with?

ICS Email Attachment Not Working for Exchange Users

I am sending a meeting invitation as an email with an ICS attachment from a Java web application. Everything works fine when I send it to Outlook users who are not using an Exchange server. They get the appropriate Accept/Reject buttons and can add the meeting to their calendar.
Things are not working for users who are on an Exchange server, however. They get a meeting invite, but it lists themselves as the meeting organizer and they are unable to change any of the meeting details. They cannot accept or reject and cannot add it to their calendar.
It is almost like Exchange is altering or does not like the format of the ICS we are sending, but normal Outlook handles it just fine.
Here is the ICS we are sending. Does anyone know what we can change to make this work for Exchange users, in addition to Gmail and non-Exchange Outlook Users.
BEGIN:VCALENDAR
PRODID:-//fincrm//iCal4j 1.0//EN
VERSION:2.0
METHOD:REQUEST
BEGIN:VEVENT
UID:128
DTSTAMP:20110927T191127Z
DTSTART;VALUE=DATE-TIME:20110928T082000
DTEND;VALUE=DATE-TIME:20110928T085000
ACTION:DISPLAY
DESCRIPTION:Time is set to 8:20 AM
SEQUENCE:0
ORGANIZER:MAILTO:user1#ltest.com
LOCATION:Financial CRM Application
ATTENDEE:MAILTO:user2#test2.com
SUMMARY:CRM Task #128
END:VEVENT
END:VCALENDAR
I appreciate your suggestions.
I have figured out that sending the ICS as a Multipart MIME Message seems to work with both Gmail and Exchange. Here is some of the relevant Java code ("calendar" is the ICS string)
// Create an alternative Multipart
Multipart mp = new MimeMultipart("alternative")
BodyPart textPart = new MimeBodyPart();
textPart.setText(eventDescription);
BodyPart calPart = new MimeBodyPart();
calPart.addHeader("content-class", "urn:content-classes:calendarmessage")
calPart.setContent(calendar.toString(), "text/calendar;method=REQUEST")
mp.addBodyPart(textPart);
mp.addBodyPart(calPart);
I know that the is from a while ago, but you can solve this with the registry fix found here:
http://support.microsoft.com/kb/944094
I have tested this with Outlook 2010 running on Exchange 2010 and this allowed 3rd party events to be entered into the calendar when you are the organizer.
I have found that if the organizer is set to you, then Outlook 2011 on Mac will not offer to add the meeting to your Calendar. Removing the Organizer from the meeting seems to work well enough.
I have also found that if the ICS attachment is not the last item attached to a multipart message, it will be stripped.

Resources