I think your manufacturer has made a faulty contacts app if it does not show. You can try in your contacts app if it is an option in “Contacts to display”. Otherwise you need to try another contacts app. Maybe “True Contacts” - this is an unbranded Android contacts app!
"Couldn't parse iCalendar" since update to 1.8.9-standard
-
Since upgrade to the 1.8.9 version via F-Droid no more calendar is accepted by the app.
Always error “Couldn’t parse ICalendar”. No more info . No debug output. Nothing.
Checking the ICS file in ICS validators shows no errors.
No matter if authentication is needed or not, always the same error.Tried to downgrade to 1.8.8 via F-Droid:
“Fehler beim Installieren von ICSx5: Installation aufgrund eines unbekannten Fehlers fehlgeschlagen”.After de-installation of 1.8.9 and installation of 1.8.8:
Same error.https://icalendar.org/validator.html says “all fine” for the ICS file.
-
1.8.9 is working fine here.
How can I know whether your .ics is really ok? Web validators are often very basic.
-
Tested 3 different validators.
How can i know what is the problem when the app does not show any further errors? Which line is the “error”? What is the problem? How can I debug? -
SAMPLE ICS CONTENT THAT FAILS:
BEGIN:VCALENDAR
VERSION:2.0
PRODID:georgeos-sammelkalender
CALSCALE:GREGORIAN
METHOD:PUBLISH
REFRESH-INTERVAL;VALUE=DURATION:P2H
BEGIN:VTIMEZONE
TZID:Europe/Berlin
X-LIC-LOCATION:Europe/Berlin
BEGIN:DAYLIGHT
TZNAME:CEST
TZOFFSETFROM:+0100
TZOFFSETTO:+0200
DTSTART:19810329T030000
RRULE:FREQ=YEARLY;INTERVAL=1;BYMONTH=3;BYDAY=-1SU
END:DAYLIGHT
BEGIN:STANDARD
TZNAME:CET
TZOFFSETFROM:+0200
TZOFFSETTO:+0100
DTSTART:19961027T030000
RRULE:FREQ=YEARLY;INTERVAL=1;BYMONTH=10;BYDAY=-1SU
END:STANDARD
END:VTIMEZONE
BEGIN:VEVENT
UID:1605609188-Geburtstag-lalala-hansmustermann
DTSTART;TZID=Europe/Berlin:20200220T080000
SEQUENCE:0
DTEND;TZID=Europe/Berlin:20200220T081500
LOCATION:Geburtstag
SUMMARY:Hans Mustermann (1967)
DESCRIPTION:Aus dem Verzeichnisdienst
CATEGORIES:Geburtstag
DTSTAMP:20201117T113308Z
CREATED:20201117T113308Z
LAST-MODIFIED:20201117T113308Z
RRULE:FREQ=YEARLY;BYMONTH=02;BYMONTHDAY=20
BEGIN:VALARM
TRIGGER;VALUE=DURATION:-PT5M
ACTION:DISPLAY
DESCRIPTION:Gratulieren: Hans Mustermann
END:VALARM
END:VEVENT
END:VCALENDAR–
-
Thanks. At the moment you have to look over adb to see:
2020-11-17 14:22:42.860 7898-8858/at.bitfire.icsdroid E/icsx5: Couldn't validate calendar at.bitfire.ical4android.InvalidCalendarException: Couldn't parse iCalendar at at.bitfire.ical4android.ICalendar$Companion.fromReader(ICalendar.kt:92) at at.bitfire.ical4android.Event$Companion.eventsFromReader(Event.kt:82) at at.bitfire.icsdroid.ui.AddCalendarValidationFragment$ValidationModel$initialize$downloader$1.onSuccess(AddCalendarValidationFragment.kt:112) at at.bitfire.icsdroid.CalendarFetcher.fetchNetwork(CalendarFetcher.kt:133) at at.bitfire.icsdroid.CalendarFetcher.run(CalendarFetcher.kt:44) at java.lang.Thread.run(Thread.java:923) Caused by: net.fortuna.ical4j.data.ParserException: Error at line 6:Text cannot be parsed to a Duration at net.fortuna.ical4j.data.CalendarParserImpl.parse(CalendarParserImpl.java:158) at net.fortuna.ical4j.data.CalendarBuilder.build(CalendarBuilder.java:183) at net.fortuna.ical4j.data.CalendarBuilder.build(CalendarBuilder.java:171) at at.bitfire.ical4android.ICalendar$Companion.fromReader(ICalendar.kt:90) at at.bitfire.ical4android.Event$Companion.eventsFromReader(Event.kt:82) at at.bitfire.icsdroid.ui.AddCalendarValidationFragment$ValidationModel$initialize$downloader$1.onSuccess(AddCalendarValidationFragment.kt:112) at at.bitfire.icsdroid.CalendarFetcher.fetchNetwork(CalendarFetcher.kt:133) at at.bitfire.icsdroid.CalendarFetcher.run(CalendarFetcher.kt:44) at java.lang.Thread.run(Thread.java:923) Caused by: java.time.format.DateTimeParseException: Text cannot be parsed to a Duration at java.time.Duration.parse(Duration.java:406) at net.fortuna.ical4j.model.TemporalAmountAdapter.parse(TemporalAmountAdapter.java:125) at net.fortuna.ical4j.model.property.RefreshInterval.setValue(RefreshInterval.java:35) ...
So you can see that
REFRESH-INTERVAL;VALUE=DURATION:P2H
is an invalid duration and can’t be parsed. According to the iCalendar specification, It would have to be
PT2H
.Please fix this on the server side. Which software did you use to generate this iCalendar?
-
Additionally with ICSx5 1.9, error details can be shared.
-
@rfc2822 Thank you, this helps a lot, it is a subscription of a shared calendar of an openXchange suite. Seems this error has always been there, but ICSX5 has begun to fail just with the pre-former release. I will contact the server software provider…