Not sure if I answer your question but I found out that getTimeline gets called for each widget size.
If I have only small widget (one or two or more) getTimeline called once.
If I have small widget and medium widget, getTimeline called twice.
If I have small, medium, large widgets, getTimeline called three times.
Took me couple of days to know this. It might be helpful to you.
Post
Replies
Boosts
Views
Activity
OK. I found out that EventKitUI can not be used with widget. Took me a while to learn about this.
More detail. In one of my file in my main app, I use EventKitUI. And I also check the widget target in the Target Membership of this file. When I remove the checkmark everything works fine. So, in my situation I have to create another swift file in the main app and move the EventKitUI part out of my main file and put it in the newly created file. Everything is working now.
Thank you.
Have you found a solution to this? In my case I want to reload a widget every time a calendar changed. I have looked at background task, but it seems strange to set a specific interval time to run widget reload. Since I only need to reload when there is a notification for calendar changed.
Not sure if this relates. but I found out that when you run from Xcode (connected to Mac), it prevents app to go to Suspend. But without Xcode, the app can go to Suspend.