ICS calendar bidirectional access (iCal, Lightning, etc) non working

Hello everyone.

I’m facing this problem since we have adopted SuiteCRM (Version 7.5.1) in our small company. I see this is a very common issue, but I didn’t found a solution yet.

First tought was my apache box wasn’t configured properly to handle PUT method required to update the calendar on server, so I also tested with public suiteCRM demo, and the issue is still there: thying to update an evend from iCal, thunderbid, whatever, authentication is required and no user/password is accepted.

Well, I did some further investigation, and I think I found something: in source file

modules/vCals/HTTP_WebDAV_Server_vCal.php , line 128, the following php instruction is used to parse the PUT request:

parse_str($_REQUEST[‘parms’], $query_arr);

Well, that string is empty, since $_REQUEST hasn’t a “parms” element in which the request string is held.

The array it’s the $_REQUEST itself, so the $query_arr gets empty and all the following if/else statements fail. No user is extracted from the PUT request (mail, user_name), then the PUT request fails and the default authentication is used.

I changed the line 128 with this one:

$query_arr = $_REQUEST; //yes, this way this if/else statement is useless :slight_smile:

This way, the PUT requests are correctly handled, since the php script is able to parse the request string and the mail/user_name authentication is successfully.

But… it’s still not working properly: events on calendar can be modified by external tools, the PUT requests is ok, but the events are not updated at all in the suiteCRM DB :frowning:

I’m giving up on that, but I’m really sorry since the whole CRM is beautiful and properly working in our case. This feature is very important for our team, but I’m not a php developer and I’m stuck on this since 2 weeks.

Thank you!

I just went a little bit deeper and I checked the vcals record in DB: when an event is updated by external tool (iCal, thunderbird, etc), it’s updated correctly. The problem looks related to the GET: when events are retrieved by the external tool, the GET reply doesn’t include the modified event.

As I guess, the ics file passed to external tools on GET request is not taken from vcals record in DB, but from meeting list or something similar.

Is it correct?

Thank you.