taskwarrior icon indicating copy to clipboard operation
taskwarrior copied to clipboard

[feature request] caldav sync

Open eoli3n opened this issue 3 years ago • 13 comments

Is that possible to sync with CalDav ?

https://github.com/tasks/tasks/issues/1256

eoli3n avatar Feb 28 '21 10:02 eoli3n

Not natively. There is https://github.com/erikh/calwarrior that provides this functionality outside of core.

Note that taskwarrior is not related to the tasks project.

tbabej avatar Feb 28 '21 16:02 tbabej

Yep, just linked it, you can see that people are searching for a desktop client which supports caldav. Thanks for calwarrior.

eoli3n avatar Feb 28 '21 17:02 eoli3n

A big +1 here.

This is an ancient request. It goes back to 2011, before the project migration to github: https://github.com/GothenburgBitFactory/taskwarrior/issues/218

I loved the taskwarrior concept but most third-party frontends suck, specially the Android ones. Having an official syncing solution to a widely used standard would be really awesome. calwarrior seems like a partial solution, but it is a small side project that has known bugs like not updating due dates. On top of that, last commit was more than six months ago. Another third-party syncing solution is caldavwarrior, which doesn't support dependent tasks and is also abandoned.

We really need an official solution to allow for a trustworthy and flexible usage.

aquelehugo avatar Apr 18 '21 00:04 aquelehugo

+1 it would be a great feature... Do we know if maintainers would be willing to merge such contribution?

hacktivista avatar Apr 19 '21 04:04 hacktivista

My solution for this is a pre-load hook in calcurse. There may be a better way to to do this with taskwarrior hooks but this has worked fine for a few years:

#!/bin/bash
task -WAITING and -PARENT and \(+OVERDUE or +DUETODAY or sched.before:today or sched:today \) _ids | {
    while read -r i
    do
        echo "[0] $(task _get "$i.description" 2> /dev/null)"
    done } | sort --unique > "$XDG_DATA_HOME"/calcurse/todo

insanerwayner avatar Apr 28 '21 21:04 insanerwayner

Getting taskwarrior tasks work with caldav is the dream. A (my) usecase:

  • Main taskmanagement (business and private): TW
  • TW -> Caldav -> Nextcloud instance
  • then to MS Outlook via the beautiful caldavsynchronizer (MS due to workplace...)

lasdfdv avatar Jul 22 '21 21:07 lasdfdv

Just to add my implementation to the list: https://github.com/jspricke/radicale-remind with https://github.com/jspricke/python-icstask

jspricke avatar Aug 31 '21 21:08 jspricke

Is there any news on making caldav sync work?

notflip avatar Apr 20 '22 20:04 notflip

This is now supported in https://github.com/bergercookie/syncall and its tw_caldav_sync executable.

bergercookie avatar Feb 13 '23 13:02 bergercookie

This is now supported in https://github.com/bergercookie/syncall and its tw_caldav_sync executable.

Great work ! Much appreciated!

borisrunakov avatar Apr 28 '23 08:04 borisrunakov

syncall unfortunately doesn't seem to be super actively developed and seems like a bandaid solution. Would a native implementation of CalDAV into taskwarrior be something the core devs would be interested in? At least for me personally it would spare me of running an additional service (taskd), that is another potential security risk on my CalDAV machine.

Is there any added benefit that taskd has over CalDAV? From what I see taskwarrior could benefit immensly by using CalDAV as backend, as there are plenty of mobile and desktop apps available that use CalDAV already, allowing taskwarrior to integrate nicely into an existing ecosystem.

mrusme avatar Aug 16 '23 22:08 mrusme

syncall unfortunately doesn't seem to be super actively developed

Apologies on this, development has indeed been slow for the past few months but that been said, it's still actively developed :)

One update since my last post is that now syncall supports syncing taskwarrior tasks with the tasks of a caldav server. It's not 100% bulletproof yet but I'm using it automatically on a daily basis and IMHO it's worth giving it a try

bergercookie avatar Aug 17 '23 07:08 bergercookie

Hi! So, Taskwarrior's built-in sync is meant to precisely replicate tasks between Taskwarrior instances. I believe we briefly looked at caldav along with a few other options as a backend for doing so, when designing taskchampion, and determined that none of the options were sufficient.

That said, the new architecture will make it easier to build integrations that bridge things between Taskwarrior and other systems such as caldav. I'm not sure exactly what funcitonality you're looking for, but as an example I sync from various bug-tracking systems like GitHub issues into Taskwarrior.

With the Taskchampion "core library", it would be pretty easy to build some automation to either bridge events in some CalDAV store into Taskwarrior, or bridge tasks from Taskwarrior into some CalDAV system. It sort of sounds like that's what syncall is doing? The intended way to do this in the future is to embed Taskchampion in the automation, with its own replica of your task database, and then sync that replica with the replica you access with the task command.

djmitche avatar Aug 17 '23 21:08 djmitche