Hm, I guess the problem is the unescaped ; in the X-APPLE-STRUCTURED-LOCATION line. I don’t think there is an easy way to work around that. Creating a new calendar without that event like suggested by @devvv4ever is probably the best solution.
Isn’t it more that if the request is fulfilled after 5 seconds the user has had a wonderful experience of reactivity and everything is fine and a set timeout never came into play?
No, reactivity doesn’t mean that the desired result is achieved at all, but that it’s achieved in acceptable time. It is not acceptable to wait 1 or 2 minutes for a simple calendar to be refreshed, because this time is far too long for what is possible and indicates severe implementation problems.
Actually I very much would prefer the calendar data to be delivered at all, even if that would mean that I had to wait two minutes for it. Patience is a virtue and seriously: so what if it takes five minutes to update the calendar data?
Basically, there’s nothing wrong with that. Let me describe the situation: What whould you think about ICSx⁵ if it took 5 min to start (from the time you click on the launcher icon)? I could say, well it does important things, it calculates the calendar list and renders some colored dots, it takes 5 minutes. Wouldn’t you say that’s unacceptable and choose another app which launches immediately?
You are certainly right, that the server side seems to suck big time, but often - as e. g. in my case - there is simply no way to change anything there.
Which leads to an important question: Why does your server take that long? What do server admins/support say about that?
This is an event without end (no COUNT or UNTIL in RRULE), and it seems that the existence of RDATE/EXDATE in such events can’t be processed by the Android calendar provider, which sends:
icsx5 : Found VEVENT: email@example.com
icsx5 : firstname.lastname@example.org not in local calendar, adding
RecurrenceProcessor: DateException with r=FREQ=MONTHLY;WKST=MO;BYDAY=3SU rangeStart=135390560256 rangeEnd=9223372036854775807
CalendarProvider2: Could not calculate last date.
CalendarProvider2: com.android.calendarcommon2.DateException: No range end provided for a recurrence that has no UNTIL or COUNT.
CalendarProvider2: at com.android.calendarcommon2.RecurrenceProcessor.expand(RecurrenceProcessor.java:768)
CalendarProvider2: at com.android.calendarcommon2.RecurrenceProcessor.expand(RecurrenceProcessor.java:663)
So, it seems that such events are not supported by Android.