I am working on a calendar app that uses EventKit and everything works great with one exception: notifications. If an event is changed in any way outside my app (e.g. by either the organiser or by the user from calendar.google.com, etc). then notifications won't update until either the app is opened or until either a BGAppRefreshTask or silent push wakes the device to check. I have tried both approaches and they are not very reliable (the system may decides when or if to run background tasks, and silent push notifications may also not be delivered), but also these can run at most every 30m or every hour and will have an impact on the battery life.
A much better approach would be if I can somehow respond to the EKEventStoreChanged notification even if the app is in the background and update local notifications as soon as the device hears about it. This does work on mac catalyst, but not on iOS, where battery is more of a concern. So I understand Apple's reasons for not allowing this, but I wanted to check if there is perhaps some way to do it that I am missing. Perhaps an extension or some way to subscribe to updates. It would be much more efficient and much more reliable.
p.s. I have tried to deliver notifications via either UserNotifications and Firebase Cloud Messaging, and both have small pros and cons, but neither can solve the main problem, which is that if your boss sends you an invite or the organizer updates the event, you won't learn about it until 1h later or even more if the silent push or BGAppRefreshTask fails. Firebase is however available if there's anything there that could help.
Thanks in advance. This is a massive problem since it seems like I only have bad options, so any suggestions would be greatly appreciated.