tasks / tasks

Bringing Astrid Tasks back from the dead
http://tasks.org
GNU General Public License v3.0
3.55k stars 498 forks source link

Microsoft To Do #2011

Open Silther opened 1 year ago

Silther commented 1 year ago

Plesse add support for Microsoft To Do.

abaker commented 1 year ago

I have started working on this, you can check out the latest commits for progress. Its probably 3-4 weeks away from alpha testing

Silther commented 1 year ago

Any news?

abaker commented 1 year ago

Sorry no more progress yet, been super busy at work and some other stuff 😞

RokeJulianLockhart commented 1 year ago

https://feedbackportal.microsoft.com/feedback/idea/bf1e6ca4-14b9-ed11-a81b-000d3a0450e3

abaker commented 1 year ago

I've tentatively picked this up again. Basic two way sync works for all of the easy stuff (due date, priority/stars, descriptions).

Reminders, subtasks, and attachments are probably going to take a lot of work.

abaker commented 1 year ago

Last night I found out that the Microsoft Graph API for patching recurring tasks is broken. After I spent a whole lot of time implementing recurring tasks support 😢

And, just like Google Tasks, the first party Microsoft To Do app uses a private API that doesn't have this bug 🙄

RokeJulianLockhart commented 1 year ago

Last night I found out that the Microsoft Graph API for patching recurring tasks is broken.

@abaker, does an official bug report exist? https://feedbackportal.microsoft.com/feedback/search/746f5230-3b1c-ec11-b6e7-0022481f8472?q=Recurring+tasks+Graph+API doesn't show anything relevantly useful.

abaker commented 1 year ago

No just this Q&A from a little over a year ago. So I have no problem creating a recurring task, but updating a task to add or modify recurrence fails

edit: it just occurred to me that the issue here is the patternedRecurrence.recurrenceRange, which provides recurrence end features that the soon-to-be-dead Outlook API supports, but Microsoft To Do doesn't (end after date or # of occurrences). If I just stop sending recurrenceRange then it works

RokeJulianLockhart commented 1 year ago

So, @abaker, is it worth one of us doing https://feedbackportal.microsoft.com/feedback/post/ citing https://learn.microsoft.com/en-us/answers/questions/806339/unable-to-patch-a-todo-task-with-a-recurrence-patt?source=docs then? I'd really like recurrent task support for Microsoft To Do in Tasks.org.

abaker commented 1 year ago

No I don't think that will be necessary, recurrence will be supported. The issue was that the graph API exposes a bunch of functionality that the official To Do apps don't support, and this recurrenceRange block (i.e. specifying when recurrence ends) was one of them. If I omit this block then the recurrencePattern works

I rewrote the recurrence picker in Compose for v13.5 so that it would be easier to hide the recurrence features that To Do doesn't support

RokeJulianLockhart commented 1 year ago

@abaker, https://github.com/tasks/tasks/issues/2011#issuecomment-1670245288

I rewrote the recurrence picker in Compose for v13.5 so that it would be easier to hide the recurrence features that To Do doesn't support

Shall the GUI expose to the user which features are unavailable when editing a task, like by greying them or with notices that they'll only be supported in the local database? I've encountered potentially unsupported features when synchronizing with Nextcloud and it's been problematic (if that's the cause) such as comments. This seems more important than those, so if not, would it be a good FR before To Do support is released?

abaker commented 1 year ago

If you're editing a Microsoft To Do task and you open the custom recurrence picker then:

It is confusing that the app supports fields that aren't supported by the sync service, but the app should make the user aware of these limitations rather than hide the fields. I'm hiding stuff in this case because To Do does have partial support for the feature.

RokeJulianLockhart commented 1 year ago

Yeah, hiding them is also fine for now. I didn't realize Tasks did that. Some kind of obvious indicator would communicate why better though, as you state. Thanks.