opentasks icon indicating copy to clipboard operation
opentasks copied to clipboard

Recurrence

Open dmfs opened this issue 7 years ago • 41 comments

This epic groups all issues related to recurring tasks.

dmfs avatar Oct 18 '17 11:10 dmfs

@dmfs please can you share if this is getting addressed anytime soon?

Many people seem to wait for this since quite some time. I have seen older comments saying "we are working on it" but that has obviously not materialized. It would be really good if you could share your plans and schedules in more detail, as it helps the affected users to decide between being patient a bit longer or moving away from this app.

steve-s-71 avatar Nov 03 '17 20:11 steve-s-71

I'll just mention this, as it may solve some people's issues - the combination of the sync adapter (DAVdroid or CalDAV sync) + OpenTasks + aCalendar(+) works very well with recurring tasks. The aCalendar+ hack for storing the recurrence info for Google Tasks in the Notes field, for example, is not used in this scenario so I assume that the native support for NextCloud recurrence is used. I haven't looked at the implementation into more details but am pretty happy with this combination as it gets the job done. This would imply that the tasks storage, provided by OpenTasks, is functioning well and it is only the UI part that is missing? Hope that having a workaround solution takes some pressure off the dev team.

alensiljak avatar Nov 05 '17 19:11 alensiljak

I got this combination setup earlier (precisely it was the paid app „aCalendar+ Kalender & Tasks“ click).

But the app messed up most of my recurring tasks in a very odd way: After a Sync was triggered manually or by time (no modification of any task, just Sync) existing recurring tasks got modified. For example due date was altered, or recurrence was changed from weekly to daily, etc).

steve-s-71 avatar Nov 05 '17 20:11 steve-s-71

Thanks for the tip. Will pay close attention. I've been using it for about a week or so and have not noticed any issues so far. I have a few mobile devices synchronizing the same calendars. The infrastructure is NextCloud 12 with Calendar 1.5.6, I think. There could be multiple causes for the issue you describe - client app, sync adapter (I've first used CalDAV Sync, now I'm on DAVdroid as it provides CardDAV and CalDAV in one package), server infrastructure.

alensiljak avatar Nov 05 '17 21:11 alensiljak

Maybe my problems is an interoperability issue:

Currently I have multiple Android devices running OpenTasks, synchronizing to the Nextcloud Server via DavDroid and PC desktops running Outlook, synchronizing to the Nextcloud Server via caldavsynchronizer.

To this point my setup is working with recurring as well as non recurring tasks (of course I must not edit recurring task in OpenTasks as that app does not support recurring tasks).

As soon I install aCalendar (that is supposed to support recurring task) after its first Sync, many (but not all) existing recurring tasks become modified. For example due date is altered, or recurrence is changed from weekly to daily. I also see the same recurring task appearing multiple times in Outlook, with different (incomprehensible) due dates and different recurrence, e.g. changed from weekly to daily. While working with it, the issue then repeats from time to time, especially if a tasks get modified. I have no issues with non-recurring tasks.

Maybe this is an interoperability issue between aCalendar and Outlook. When I have time, I'll do some experiments in that direction, for example I'll check if aCalendar only mess up recurring Tasks that are created with Outlook.

steve-s-71 avatar Nov 06 '17 21:11 steve-s-71

@steve-s-71, exactly as you say - try figuring out what exactly happens. You can always see the task's iCal entry in your NextCloud database. Not even NextCloud Tasks app displays the recurrence info. Then compare what happens after installing aCalendar and synchronizing. Then compare again after Outlook synchronization. That should give you enough pointers. It is possible that either one of the clients or one of the synchronizers messes up some of the entries in the iCal record. I only use aCalendar+ with DAVdroid for now and several tasks have been completed and correctly moved at the beginning of the month. The tasks are not edited anywhere else, though.

alensiljak avatar Nov 06 '17 22:11 alensiljak

@steve-s-71 I know this is way overdue. Your experience with aCalendar shows that implementing recurrence is a non-trivial task. The problem is the iCalendar VTODO task model and its various interpretations and implementations. It's certainly the toughest nut to crack in OpenTasks so far. We've actually started working on this a couple of times until some other task interfered and we had to put it on hold. At some point we came back and often overthrew everything we had so far, because we had a new view on the issue, learned about new ways of doing things or of new challenges that need to be considered.

That being said, we did make progress with recurrence. We've created a library to parse and evaluate recurrence rules, we've created a test suite for the provider and we've created test utilities which allow for easy declarative testing. We've also spend much time pondering on solutions for all the issues in the VTODO recurrence model and the way it's supported by other clients. Although we now have a pretty good idea of how it should work, there are still certain cases which can not be solved easily (if at all).

The first milestone is "passive support" for recurrence. By "passive support" I mean that OpenTasks will be able to deal with recurring tasks created by other clients (without supporting creating recurring tasks yet). We're aiming to release that by the end of the year.

dmfs avatar Nov 07 '17 23:11 dmfs

We're getting closer to this. We've made a lot of progress in this regard during the last couple of weeks and months. By the end of January we should have an alpha or even beta with "passive support" for recurrence, which means, modifying a task will only modify this single instance instead of the whole thing. It's mostly a matter of writing more unit tests and fixing some remaining issues. If anyone is interested in testing I can release a preview to the Google Play alpha channel.

dmfs avatar Jan 09 '18 10:01 dmfs

Yes, please!

Basti1512 avatar Jan 12 '18 04:01 Basti1512

Since a lot my schedules at work rely on recurring events I'd also like the opportunity to test a preview. Even the most basic passive support for recurring tasks makes my life a lot easier and would be highly appreciated.

kartoffelheinz avatar May 04 '18 18:05 kartoffelheinz

It's working for me since a couple of months with version 1.1.13 in combination with aCalendar+.

Basti1512 avatar May 04 '18 21:05 Basti1512

I must say I highly doubt that you have the features @dmfs talked about on Jan, 9. The release notes of version 1.1.13 explicitly state that they do not support passive editing in this regard. Are you sure editing (as in e.g. mark as done) a recurring task will only modify a single instance of it?

kartoffelheinz avatar May 06 '18 20:05 kartoffelheinz

I'm not sure what it does in the background but @Basti1512 is right in that, with aCalendar+, the recurring tasks behave as one would expect. The tasks are clearly marked as recurring and finishing one instance will then only show the next due one as active. In practice it works quite well.

alensiljak avatar May 06 '18 20:05 alensiljak

@MisterY I don't agree recurring tasks behave as one would suspect :-/ Unfortunately, aCalendar+ dosen't work correctly with Mozilla Thunderbird with its Lightning extension. Tasks marked as done it TB are still active in aCalendar+. Tasks marked as done in aCalendar+ are broken in TB. I wish these two would work together.

raczkow avatar May 07 '18 07:05 raczkow

@raczkow, not sure what you mean by broken. I'm regularly using Thunderbird with Lightning as well and have not noticed any issues. As a matter of fact, I just opened it and can confirm that all the tasks are showing as I would expect them even though I've only used my phone this past week. I have10+ recurring tasks and some of them I've checked-off during that week. Only the next instance is showing in Lightning. If you were to be more precise in defining the problem, perhaps someone could do something about it.

alensiljak avatar May 07 '18 07:05 alensiljak

Lets stop talking OT about "aCalendar+". This issue here is about "OpenTasks" recurrence functionality, and we should focus on that.

As i dont have been accepted in the alpha/beta-group yet, i dont exactly know what the status about the "passive support" for the recurrence feature is and how good it works yet.

But as i have researched, the first occurrence of this feature request was in june 2013 https://github.com/dmfs/opentasks-provider/issues/1 .

Funnily enough, since then the request of recurring tasks is itself reccuring again and again :D

Since its been almost 5 years now, i really gently want to ask @dmfs if we can have two eta's? One for the release of the "passive support" and one for "full support".

Im in hope that the "passive support" official release isn't too far away.

I think for the beginning it would be enough for the most of us to just have the ability to mark single tasks as done without influencing the other recurring tasks and/or master task (or interfere with thunderbirds lightning etc). Im myself are fine with creating my recurring tasks in thunderbird and just use OpenTasks to mark them as done.

Since i can't really help you with pullrequest's on this project, but really urgently need this feature, i have started to support a bugbounty at https://www.bountysource.com/issues/50450818-recurrence for the "full support of recurring tasks" and i strongly hope that this will encourage others to join this bounty as well.

thrdroom avatar May 07 '18 10:05 thrdroom

@thrdroom, since OpenTasks are both an app and a data provider, talking about another app that utilizes the data provider is not OT. aCalendar+ does not do black magic. It is simply a client that is correctly utilising the OpenTasks data provider. And the recurrence seems to be working just fine in that scenario. I think aCalendar has a free version available. So, if you want to resolve your issue quickly, install that app and be happy. If not, you can help everyone by having a bit more patience and let the devs do their thing. If not, you might as well (just like any of us) install Android Studio, learn some Java, and contribute the feature. That's what Open Source is all about, after all.

alensiljak avatar May 07 '18 10:05 alensiljak

@MisterY since i can't contribute time and therefore code, money is the only resource i can provide at the moment. Just to say: "learn code, its open source" is simply too shallow thought. There is more to open source projects than only just code itself, but i dont want to go too OT here.

And since aCalendar+ is a paid closed source playstore-exclusive app which is not on fdroid does sadly not qualify to resolve this issue quickly. There are number of reasons i supported the bounty especially for opentasks as app. I hope you also join the bounty @MisterY no matter if you contribute code or not

thrdroom avatar May 07 '18 10:05 thrdroom

OK, I understand and appreciate what you are saying. The free version of aCalendar does not support OpenTasks sync. However, to me it still seems that the fastest and cheapest option is to buy aCalendar+ for 5 Euros. Not that I'm advertising but if it is that urgent then it is also a valid option. And fairly cheap, at that. Almost everything I write outside work is published as Open Source but you have to understand that most of these devs do it as a hobby. They are not paid for this time so it's a balancing act on their side, too. I'd love to contribute this but it is not a burning issue for me (since aC+ handles it) and I'm already too spread out on other OS projects. Cheers

alensiljak avatar May 07 '18 10:05 alensiljak

Implement something already. It already works perfect with Thunderbird/Lightning just make it work like that.

captainwasabi avatar May 20 '18 19:05 captainwasabi

Sorry, all. At present we're pretty busy with paid customer projects. It certainly wasn't planned to delay this feature this long. There is a branch called stories/566-recurrence-expansion which already contains most of the changes on the provider part. I think the only change left in the provider is updating the DISTANCE_FROM_CURRENT column after a recurring task was modified. The UI also still needs a few changes in order to work.

@captainwasabi did you base your changes on this branch? It might be worth looking into.

dmfs avatar May 21 '18 22:05 dmfs

Ah, no I didn't. However, paid work takes precedence. I know how that is!

Thanks!

captainwasabi avatar May 21 '18 23:05 captainwasabi

The branch https://github.com/dmfs/opentasks/tree/stories/566-recurrence-expansion contains a working state. There is no UI for creating or modifying recurrence yet, but recurring tasks created on a remote server should be handled correctly, i.e. completing/modifying it only completes/modifies the instance, not the entire series. Currently the UI shows the first 10 instances only. There are a couple of tests for this feature, but I'll probably add a few more. Also, existing tasks are not migrated yet (i.e. the instances table needs to be rebuilt).

I'll try to fix the remaining issues during the upcoming week.

dmfs avatar Oct 01 '18 00:10 dmfs

You didn't specify which upcoming week, he he.

alensiljak avatar Oct 30 '18 11:10 alensiljak

hehe, right. I had to prioritize #703 otherwise I can't update the app on Google Play anymore. Google doesn't allow updates which don't support SDK target level 26. The required changes took more time than I anticipated. I'm almost done, I just need to fix notifications.

dmfs avatar Nov 01 '18 20:11 dmfs

I have moved the bounty away to the nextcloud/tasks webapp for the same reason of supporting repeating tasks. I also moved to the absolutely great app Tasks (Astrid To-Do List Clone) and i advise anyone else to do so aswell. It's FOSS, on the Playstore and Fdroid and it's maintained regularly. If you switch, don't forget to donate to the dev of Tasks (Astrid To-Do List Clone) ;)

thrdroom avatar Jan 15 '19 10:01 thrdroom

I've just published the content of the https://github.com/dmfs/opentasks/tree/stories/462-basic-recurrence-support branch on the Google Play Public Beta channel (join here: https://play.google.com/apps/testing/org.dmfs.tasks). Please make sure you have a recent backup of your data before you upgrade, just to be sure nothing gets lost.

You won't notice much of a difference until you modify or delete an instance of a recurring task. Instead of modifying or removing all instance your actions will only affect the upcoming instance. It's not possible yet to create or edit recurrence rules. That's the next step if this branch doesn't cause any trouble.

dmfs avatar Jan 18 '19 16:01 dmfs

I've been using the beta for a while now, and it doesn't seem to be working quite right. Some instances in my calendar are showing as current even though their start date has not yet elapsed. Some instances that are current in the calendar are not showing up at all.

gkalomiros avatar Mar 05 '19 05:03 gkalomiros

@gkalomiros Thanks for your report. Can you give me more information?

  • Which sync app do you use?
  • Can you provide ics files of affected tasks?
  • When you say "current", do you refer to the widget? If so, what does the app show in the list view for those tasks, are start and due dates correct there?

dmfs avatar Mar 05 '19 12:03 dmfs

@gkalomiros Do you have any other insights for me?

dmfs avatar Mar 22 '19 10:03 dmfs