Sounds reasonable to me to look e.g. for a “BEGIN: VCALENDAR” and a “BEGIN: EVENT” as well as for a closing “END:VEVENT” and “END:VCALENDAR” as a basic validation. I think from a user perspective this should be fine, the subscription would be fast and as it can happen at any time that a once valid resource becomes invalid (maybe due to an error while the .ics file was created, or a failed file download, or…) I don’t see a drawback in validating the whole file only when synchronizing.
Lack of global notification setting and removal of manual notification per event set on calendar upon syncs
I have installed ICSdroid on LineageOS, and it’s working on both, the native LOS app and the Etar calendar APP.
On the ICSdroid APP the only thing I can configure, is the period for the recurrent syncs (right now set to 15 minutes). There’s no global setting for notifications for all events from the upstream calendar, neither ICSdroid grabs the notifications settings from the original calendars. On DAVdroid those come from the original calendars (granted it’s not the same with ICS calendars)… This becomes a problem because for the calendars provided by ICSdroid, once published on the calendar APPs, comes with no notification time at all, and the calendar APPs, though having a default time prior to the event for notifications, they don’t actually set those notifications. One has to manually set the notification per event, which is really annoying if the calendar is really populated.
Beyond the prior problem, when taking the time to manually set notifications per event (well, the recursive ones make things easier), then one faces the lost of those notifications settings, when syncs happen. So if one trusts calendar APPs to notify you what comes next, losing the notifications for the events is really a problem.
Is this the way how ICSdroid is supposed to work? To me a global notification setup for all events is more than enough, and perhaps grabbing the ones from the original upstream calendar is nice.
Currently using ICSdroid 1.6.1, installed/updated from F-Droid. In the 1.7 announcement I didn’t read about any special changes for notifications.
Using ICSdroid on “LineageOS for microG”, 15.1 (2019-01-02 build).
HW: Xiaomi Redmi 4X (Santoni)
I think there are two different points:
- The “global notification setting”. Is this a duplicate of https://forums.bitfire.at/post/9890?
- ICSx⁵ should already use the VALARMs of the original event. Can you please provide the URL of a calendar with VALARMs which are not imported by ICSx⁵ (here or to email@example.com)?
Update: I can not reproduce the problem that VALARMs of Webcal feeds are not imported. This works as expected here.
 The 9890 post talks about events that “don’t have reminders and you can’t control the source”. All events on the upstream calendar I’m syncing originally have notification settings. So the problem doesn’t seem quite similar. Actually if I could get the original calendar notifications, that’s nice, because I have to set them in its web interface, to get reminders in the computer.
 The ICS calendar I sync comes from ms-office-365 (it can publish to ICS or HTML), sorry that I forgot to mention that on the additional information I included (not sure if office-365 has known issues). As it’s the calendar for the office I’m not sure if I can share it (will ask), though it’s my personal calendar there. I thought that was a common misbehavior though.
See what office365 offers to set for reminder as an example:
Can’t provide URL to my calendar as mentioned, and office365 doesn’t offer URLs per individual events, so can’t provide them. In this case you can see there’s a 5 mins reminder prior to event.
The issue with published Office365 Calendars is they do not include VALARM attributes - so, of course you won’t be able to sync reminders with ICSx⁵.
Here is an example of a published calendar, that (in Outlook,) has a 15 min reminder, which does not show up in the ICS document.
You can add reminders manually to the Android calendar (after the subscription pulls down events) - but the next sync overwrites these events, wiping out any reminders you may have set.
As a work around, would it be possible to add an option to not remove reminders that have been set manually (if the ics data does not contain VALARM attributes?)