InvalidCalendarException: Couldn't parse iCalendar object



  • I’ve got the following error when trying to sync calendar events from SOGo (v4.0.8):

    (I’ve redacted the user and domain)

    --- BEGIN DEBUG INFO ---
    SYNCHRONIZATION INFO
    Account name: user@example.com
    Authority: com.android.calendar
    
    REMOTE RESOURCE:
    https://example.com/SOGo/dav/user@example.com/Calendar/personal/5B9D-5DBEB400-55-15F54A60.ics
    
    EXCEPTION:
    at.bitfire.ical4android.InvalidCalendarException: Couldn't parse iCalendar object
    	at at.bitfire.ical4android.Event$Companion.fromReader(Event.kt:81)
    	at at.bitfire.ical4android.Event$Companion.fromReader$default(Event.kt:73)
    	at at.bitfire.davdroid.syncadapter.CalendarSyncManager.processVEvent(CalendarSyncManager.kt:160)
    	at at.bitfire.davdroid.syncadapter.CalendarSyncManager.access$processVEvent(CalendarSyncManager.kt:42)
    	at at.bitfire.davdroid.syncadapter.CalendarSyncManager$downloadRemote$1$1.invoke(CalendarSyncManager.kt:124)
    	at at.bitfire.davdroid.syncadapter.CalendarSyncManager$downloadRemote$1$1.invoke(CalendarSyncManager.kt:42)
    	at at.bitfire.dav4jvm.DavResource.get(DavResource.kt:211)
    	at at.bitfire.davdroid.syncadapter.CalendarSyncManager$downloadRemote$1.invoke(CalendarSyncManager.kt:118)
    	at at.bitfire.davdroid.syncadapter.CalendarSyncManager$downloadRemote$1.invoke(CalendarSyncManager.kt:42)
    	at at.bitfire.davdroid.syncadapter.SyncManager.useRemote(SyncManager.kt:810)
    	at at.bitfire.davdroid.syncadapter.CalendarSyncManager.downloadRemote(CalendarSyncManager.kt:117)
    	at at.bitfire.davdroid.syncadapter.SyncManager$syncRemote$1$1.run(SyncManager.kt:452)
    	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:459)
    	at java.util.concurrent.FutureTask.run(FutureTask.java:266)
    	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167)
    	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)
    	at java.lang.Thread.run(Thread.java:764)
    Caused by: net.fortuna.ical4j.data.ParserException: Error at line 13:Expected [-3], read [58]
    	at net.fortuna.ical4j.data.CalendarParserImpl.assertToken(CalendarParserImpl.java:462)
    	at net.fortuna.ical4j.data.CalendarParserImpl.access$700(CalendarParserImpl.java:56)
    	at net.fortuna.ical4j.data.CalendarParserImpl$ParameterParser.parse(CalendarParserImpl.java:328)
    	at net.fortuna.ical4j.data.CalendarParserImpl$ParameterParser.access$1800(CalendarParserImpl.java:322)
    	at net.fortuna.ical4j.data.CalendarParserImpl$ParameterListParser.parse(CalendarParserImpl.java:310)
    	at net.fortuna.ical4j.data.CalendarParserImpl$PropertyParser.parse(CalendarParserImpl.java:247)
    	at net.fortuna.ical4j.data.CalendarParserImpl$PropertyParser.access$1100(CalendarParserImpl.java:229)
    	at net.fortuna.ical4j.data.CalendarParserImpl$PropertyListParser.parse(CalendarParserImpl.java:210)
    	at net.fortuna.ical4j.data.CalendarParserImpl$ComponentParser.parse(CalendarParserImpl.java:422)
    	at net.fortuna.ical4j.data.CalendarParserImpl$ComponentParser.access$900(CalendarParserImpl.java:406)
    	at net.fortuna.ical4j.data.CalendarParserImpl$PropertyListParser.parse(CalendarParserImpl.java:208)
    	at net.fortuna.ical4j.data.CalendarParserImpl.parseCalendar(CalendarParserImpl.java:115)
    	at net.fortuna.ical4j.data.CalendarParserImpl.parseCalendarList(CalendarParserImpl.java:180)
    	at net.fortuna.ical4j.data.CalendarParserImpl.parse(CalendarParserImpl.java:149)
    	at net.fortuna.ical4j.data.CalendarBuilder.build(CalendarBuilder.java:198)
    	at net.fortuna.ical4j.data.CalendarBuilder.build(CalendarBuilder.java:178)
    	at at.bitfire.ical4android.Event$Companion.fromReader(Event.kt:79)
    	... 16 more
    
    SOFTWARE INFORMATION
    * at.bitfire.davdroid 2.6-ose (308) from com.google.android.packageinstaller
    * com.samsung.android.providers.contacts 10.1.22 (1012203100)
    * com.android.providers.calendar 10.0.00.14 (1000000014)
    * com.samsung.android.contacts 10.2.02.9 (1020200009)
    * com.samsung.android.calendar 10.5.06.1 (1050600001)
    
    CONNECTIVITY (at the moment)
    - [ Transports: WIFI Capabilities: WIFI_P2P&NOT_RESTRICTED&TRUSTED&NOT_VPN&FOREGROUND&NOT_SUSPENDED Unwanted:  LinkUpBandwidth>=1048576Kbps LinkDnBandwidth>=1048576Kbps]
    - [ Transports: WIFI Capabilities: NOT_METERED&INTERNET&NOT_RESTRICTED&TRUSTED&NOT_VPN&VALIDATED&NOT_ROAMING&FOREGROUND&NOT_CONGESTED&NOT_SUSPENDED Unwanted:  LinkUpBandwidth>=1048576Kbps LinkDnBandwidth>=1048576Kbps SignalStrength: -61]
    
    CONFIGURATION
    Power saving disabled: yes
    android.permission.READ_CONTACTS: granted
    android.permission.WRITE_CONTACTS: granted
    android.permission.READ_CALENDAR: granted
    android.permission.WRITE_CALENDAR: granted
    org.dmfs.permission.READ_TASKS: denied
    org.dmfs.permission.WRITE_TASKS: denied
    android.permission.ACCESS_COARSE_LOCATION: denied
    System-wide synchronization: automatically
    Account: user@example.com
      Address book sync. interval: 15 min
      Calendar     sync. interval: 15 min
      OpenTasks    sync. interval: —
      WiFi only: false
      [CardDAV] Contact group method: GROUP_VCARDS
      [CalDAV] Time range (past days): null
               Manage calendar colors: false
               Use event colors: false
    Address book account: Personal Address Book (user@example.com 5g)
      Main account: Account {name=user@example.com, type=bitfire.at.davdroid}
      URL: https://example.com/SOGo/dav/user@example.com/Contacts/personal/
      Sync automatically: true
    
    SQLITE DUMP
    android_metadata
    	|  locale |
    	|  en_US |
    ----------
    room_master_table
    	|  id | identity_hash |
    	|  42 | a7554d1ebc5ecfe0c7aefe271485d63c |
    ----------
    service
    	|  id | accountName | type | principal |
    	|  1 | user@example.com | carddav | https://example.com/SOGo/dav/user@example.com |
    	|  2 | user@example.com | caldav | https://example.com/SOGo/dav/user@example.com |
    ----------
    sqlite_sequence
    	|  name | seq |
    	|  service | 2 |
    	|  collection | 3 |
    	|  homeset | 2 |
    ----------
    homeset
    	|  id | serviceId | url | privBind | displayName |
    	|  1 | 2 | https://example.com/SOGo/dav/user@example.com/Calendar/ | 1 | Calendar |
    	|  2 | 1 | https://example.com/SOGo/dav/user@example.com/Contacts/ | 1 | Contacts |
    ----------
    collection
    	|  id | serviceId | type | url | privWriteContent | privUnbind | forceReadOnly | displayName | description | color | timezone | supportsVEVENT | supportsVTODO | supportsVJOURNAL | source | sync |
    	|  1 | 2 | CALENDAR | https://example.com/SOGo/dav/user@example.com/Calendar/personal/ | 1 | 1 | 0 | Personal Calendar | <null> | -5592406 | <null> | 1 | 1 | 0 | <null> | 1 |
    	|  2 | 1 | ADDRESS_BOOK | https://example.com/SOGo/dav/user@example.com/Contacts/personal/ | 1 | 1 | 0 | Personal Address Book | <null> | <null> | <null> | <null> | <null> | <null> | <null> | 1 |
    	|  3 | 1 | ADDRESS_BOOK | https://example.com/SOGo/dav/user@example.com/Contacts/directory/ | 1 | 1 | 0 | directory | <null> | <null> | <null> | <null> | <null> | <null> | <null> | 0 |
    ----------
    
    SYSTEM INFORMATION
    Android version: 9 (PPR1.180610.011.G970FXXS3ASJG)
    Device: samsung SM-G970F (beyond0)
    
    --- END DEBUG INFO ---
    

    The ics content is the following:

    BEGIN:VCALENDAR
    PRODID:-//Inverse inc./SOGo 4.0.8//EN
    VERSION:2.0
    BEGIN:VEVENT
    UID:5B9D-5DBEB400-55-15F54A60
    SUMMARY:Test from SOGo
    CLASS:PUBLIC
    BEGIN:VALARM
    TRIGGER;RELATED=START;VALUE=DURATION:-PT15M
    ACTION:DISPLAY
    END:VALARM
    TRANSP:OPAQUE
    DTSTART;:20191103T150000Z
    DTEND;:20191103T160000Z
    CREATED:20191103T110402Z
    DTSTAMP:20191103T110402Z
    LAST-MODIFIED:20191103T110402Z
    END:VEVENT
    END:VCALENDAR
    

    The error Error at line 13:Expected [-3], read [58] suggest there’s an error at this line, but I can’t see what:

    DTSTART;:20191103T150000Z
    

    Using DAVx⁵ version 2.6-ose (308)


  • developer

    @otiel Hi,

    This line is not valid. If there is a ;, it means a parameter will follow: DTSTART;paramname=value:20191103T150000Z. In your case, there is no parameter.

    The line should be: DTSTART:20191103T150000Z instead.

    Does that help? How did you create this event?



  • @rfc2822 Thanks.

    I’ve created the event using the SOGo web app, nothing special as you can see on the screen capture below.

    789bcea2-d777-4d6d-8958-3eed1db9d0c9-image.png

    I’ve seen that SOGo is on the list of tested services, could it mean that my provider has “tampered” with the SOGo setup? What’s my options there, contact my provider?


  • developer

    Is it this problem? https://sogo.nu/bugs/view.php?id=4802

    Does setting a time zone (probably for the system/user) help?



  • Yes, exactly! I had not configured my timezone, thus it was UTC by default.

    After setting my timezone, events now sync correctly. Thanks a lot @rfc2822, problem solved.

    For those having the same issue, go to Settings > General under SOGo web app to set the timezone:

    3929856f-73a4-42e0-ba15-40e8e09fab5d-image.png


  • developer

    @otiel Thanks for the update!



Similar topics

  • 5
  • 1
  • 11