Agenda incorrectly marks reminders 31+ days out as being deleted

The problem here is that Apple doesn’t give us a way to get a log of all transactions, i.e. we can’t get a list that says: since you checked Wednesday last week, the user deleted reminder X, moved reminder Y to Z, renamed reminder A, etc. And on top of this, the identifiers of a reminder is not guaranteed to stay the same. In other words, the system Apple gives here stinks. In part this has to do with the legacy calendar formats underlying the whole system (most of these don’t support stable identifiers themselves), but Apple could have done a better job here. Alas.

So what we are forced to do is to fetch the current set of reminders and assume that those that are no longer found have been deleted, and as much as possible deduce a moved reminder from deletes + inserts. It’s messy I’m afraid. And given that some people might have a LOT of reminders, it’s also not a matter of just fetching all reminders each time Agenda starts or every X minutes, that would give major performance issues.

Having said all this, with each iteration we learn, we’ve now rewritten the whole system three times based on everything we learned after the previous attempt. It’s on my list to go for another round somewhere this year, trying to fix or workaround some of the shortcomings and trying to accommodate some of the frequent feature requests. But these are pretty significant amounts of works, and other things are more important to get to first.

Anyway, just wanted to share this insight that at least when it comes to events and reminders, a lot has little to do with opinion or bugs, but rather with the limitations we have to deal with. In that respect I think Agenda is one of the few apps that is integrating with the reminders app so deeply without it trying to be a stereotypical todo/reminder app itself, which does mean having to accept a bunch of scenarios that are hard to address or force some unexpected limits from the perspective of the user.

1 Like