EAS-4-TbSync
EAS-4-TbSync copied to clipboard
Better reminder support for Microsoft To-Do
I've added some changes to better support Microsoft To Do (https://todo.microsoft.com/).
Microsoft To Do:
- only uses due dates (no start dates - because of this reminders do not work currently in EAS-4-TbSync)
- the due date doen't have a time part (time is set to 0:00)
- reminders have an absolute date +time
My patch adds a new preference "extensions.eas4tbsync.msTodoCompat=true/false" (defaults to "false"). When downloading new tasks from the server and the parameter is set to
- true, the reminder date itself will be used as the due date and entry date. Additionally a reminder will be created, that points exactly to the entry date (related to entry date with 0 seconds offset). Drawback: it completly ignores the due date from MS To Do. Hence it only makes sense if due date and reminder is set to the same day (but who uses different days for date and reminder in MS To Do?).
- false and start date has not been transmitted by server (which is the case for MS To Do), the entry date and due date will be set as usual. Only difference: reminder is created using an absolute time instead of relative date based on start date. Drawback: Because MS To Do does not use time parts in and due, it's always shown as "0:00". Which means all tasks for today are shown as overdue even if the reminder is defined for a later time on that day.
"msTodoCompat=false" is for sure the prefered way since it honors the due date. "msTodoCompat=true" works best for my personal use.
Changed ALARM_RELATED_ON to ALARM_RELATED_START - looks better than "The moment the task ends":
Can I do anything to get this merged into this plugin or are you not interested in this change?
I will have a look shortly. Thank you for your contribution!
In case my description above is too complex, the following example should show the different behaviour. Given a new todo, that has been created in MS ToDo with:
Due Date: 11.03.21
Reminder: 11:03.21 13:12
This will be synchronized into Thunderbird with:
1) current behaviour:
Start: [inactive]
Due Date: 11.03.21 00:00
Reminder: [no reminder]
-> no reminder at all and time part completly lost
2a) with patch and extensions.eas4tbsync.msTodoCompat=true
Start: 11.03.21 13:12
Due Date: 11.03.21 13:12
Reminder: 0 minutes before
-> in my opinion closest to user's expectation
2b) with patch and extensions.eas4tbsync.msTodoCompat=false
Start: [inactive]
Due Date: 11.03.21 00:00
Reminder: 11.03.21 13:12
-> honors the fact that MS ToDo does not suppot time part in due date, but does not look good in Thunderbird
Thanks. Let's give this a try.