Go-For-It icon indicating copy to clipboard operation
Go-For-It copied to clipboard

Support Task List syncronization

Open JMoerman opened this issue 6 years ago • 9 comments

Issue by fabianthoma Saturday Dec 27, 2014 at 23:47 GMT Originally opened as https://github.com/mank319/Go-For-It/issues/19


Here's a few ideas what you could allow users to sync with:

  • [ ] CalDAV Tasks (can use evolution-data-server on linux easily)
  • [ ] Github assigned Issues (please)
  • [ ] Add your generic TODO Service here

JMoerman avatar Oct 25 '17 14:10 JMoerman

Comment by mank319 Saturday Dec 27, 2014 at 23:59 GMT


Yeah that is definitely something on the to-do list. Using Todo.txt is simply a quick to implement solution with mobile backends on pretty much all platforms, that I quite liked for the initial release. Moreover I am a fan of Todo.txt myself :smile:

The data model will have to be further abstracted at some point with interfaces for different storage and synchronization services. Once that is done, the actual export/synchronization should be easy.

It was due to a consideration of time & resources, that I decided not to do that directly in the first place.

JMoerman avatar Oct 25 '17 14:10 JMoerman

Comment by fabianthoma Sunday Dec 28, 2014 at 12:17 GMT


Yeah I figured as much, staying simple with an application is the best way to start it. I files this issue merely to keep track of the options you might be able to add in the future. Take your time and do it right ;)

JMoerman avatar Oct 25 '17 14:10 JMoerman

Comment by nodiscc Wednesday Oct 28, 2015 at 14:52 GMT


I think this app should not take care of synchronization, but rather rely on - and maybe suggest - third party tools (owncloud, ~~dropbox~~, https://github.com/Kickball/awesome-selfhosted#file-sharing-and-synchronization which are feature complete with versioning, etc.). What's the point of using a portable storage format (todo.txt) if you need to reimplement everything?

JMoerman avatar Oct 25 '17 14:10 JMoerman

Comment by mank319 Wednesday Oct 28, 2015 at 15:20 GMT


In that case Todo.txt would be one option among many others, if Todo.txt is set as storage back-end the app would behave exactly like it currently does, but if users want to use alternatives, it should be easy to develop plug-ins for that purpose.

JMoerman avatar Oct 25 '17 14:10 JMoerman

Comment by nodiscc Wednesday Oct 28, 2015 at 15:25 GMT


As long as the storage backend is a file (plain text, database, encrypted data, xml, json, org-mode https://github.com/mank319/Go-For-It/issues/61 https://github.com/mank319/Go-For-It/issues/68, all file-based), file synchronization tools perfectly fit the bill. A file synchronization implemented in go-for-it would increase the program complexity, introduce potential bugs and would not cover every case already covered by specialized file sync software. Just my 2 cents

JMoerman avatar Oct 25 '17 14:10 JMoerman

Comment by asteres Sunday Jun 05, 2016 at 21:56 GMT


I would love to make a plugin so go for it works with the Habatica api https://habitica.com/apidoc/#api-Task-AddTagToTask

JMoerman avatar Oct 25 '17 14:10 JMoerman

Comment by eages Tuesday Jun 07, 2016 at 03:53 GMT


I agree with nodiscc here. Part of Go For It's usefulness (and also todo.txt in general) is the lean implementation. There's no technical distractions on the user's end and the developer can focus on the sole purpose of the project. Your users are smart -- if they want syncing, they probably already have some system in place for that. For instance, I use Syncthing but the majority of people probably have Dropbox, Skydrive, Google Drive or similar in place already.

If a user wants to synchronise with some alternative todo format (CalDAV, Habatica or whatever), wouldn't that best be done by a small external tool? One that could be called upon by Go For It when certain events (like saving) occur. Such tools might actually be useful for a wider audience as well since there are already more mature todo.txt solutions available.

Edit: I don't mean to be a buzzkill in saying these things. I just see great potential in Go For It -- I haven't seen any other product like it and I don't want it to detract too far from that strength.

JMoerman avatar Oct 25 '17 14:10 JMoerman

Comment by JMoerman Tuesday Jun 07, 2016 at 20:09 GMT


@eages I agree with that synchronization is not something that should be implemented in Go For It itself, but supporting other file formats has its merits: core todo.txt doesn't have that many features. Supporting features like time tracking wouldn't be practical using that. We could off course extend it, but this would not integrate well with other clients. I myself want to have support for recurring tasks in a way that todo.txt could not store in a reasonable way. Syncing with other formats could have the same issue in that a 1:1 translation can't be done in a nice way.

The things that people want or need will differ and it wouldn't be a good idea to support it all in a single application. What can be done is to make Go For It extensible so one could make a plugin to suit his/her needs. Adding an alternative todo list plugin will also mean supplying a widget to display and select tasks as I don't know of a good UI to rule them all.

What I'm currently working on is supporting multiple lists per plugin, so even if you just want to use the core todo.txt plugin you may benefit from these new possibilities. (For you todo.txt users: also expect support for automatic line breaks, projects and context in 2.0)

@asteres I hope to be able to publish a alpha version of Go For It with plugin support. (What I have now is incomplete, documentation is missing, and it has a lot of little issues.) I can't predict when it will be ready as the amount of time I have available varies and I haven't had as much time to spend on it as I would like, recently. That said if you want to work on a plugin right now, you could start by storing the the tasks in a Glib.List, Gee.List, or something similar and implement basic functionality (adding, removing, editing, etc...).

JMoerman avatar Oct 25 '17 14:10 JMoerman

Just chiming in. I think as time has clearly passed priorities have also. We all want sync across all our devices and I believe the best way to handle that is with CALDAV support. I can run the same tasks in Go For It, thunderbird, My apps on my phone, etc. Just throwing support for CALDAV here in 2022. I hope that helps

therealrobster avatar Feb 18 '22 01:02 therealrobster