Your task list is a plain text file, not some proprietary format owned by a company or locked to a specific application.
Plain text is the simplest file format there is. It will always be accessible, by some kind of application, forever.
Learn only a few simple formatting rules (which SwiftoDo Desktop will take care of for you) to indicate task priority, task completion, and so on.
The todo.txt format was built with Getting Things Done in mind. It supports projects (which begin with “+”) and contexts (which begin with a “@“).
You can sync your task list with any app on any platform, including SwiftoDo on iOS if you use Dropbox.
SwiftoDo offers the following features:
The todo.txt format is defined in the todo.txt project wiki.
Storing your tasks in a text file that you control gives you tremendous power. You are not locked into a particular system, application, or platform. You can sync the file across devices simply. You can open your task list in any text editor for quick edits, such as pasting in several dozen tasks at once. You can use existing command line tools, such as
sort, for searching and sorting.
Due date and threshold date are implemented as key:value tags, which are fully compliant with the todo.txt format spec. They both are popular extensions to the todo.txt command line scripts.
Due dates are formatted as
due:yyyy-mm-dd. For example:
A threshold date indicates that a task should not be started until the threshold date. Adding threshold dates is a way to indicate "future tasks". A threshold date is formatted as:
Threshold dates are formatted as
t:yyyy-mm-dd. For example:
Yes. That date format is defined by ISO 8601. It is an internationally accepted way to represent dates. If you don't like typing the date that way, use the due date and threshold date pickers in the task text editor.
SwiftoDo Desktop works nicely with cloud services, such as Dropbox, that sync your local files to the cloud. It saves immediately after changes are made, and automatically reloads the file when changes from external sources (such as a cloud service updating the local file) are detected.
To be clear, SwiftoDo Desktop does not tie directly into any cloud services. It loads and saves local files only. Those local files may be synced to cloud services via those services' desktop clients.
Note that, since version 2.4.2, SwiftoDo Desktop will not reload your file while a task is in edit mode. This limitation is there because task edits were being canceled by file reloads. It is strongly recommended to not leave tasks in edit modes for extended periods of time (which you would not normally do anyway).
Except for "order in file" (which is self-explanatory), the various sort options perform a multi-level sort. The first sort level is the element you choose: priority, project, or context. Then, beneath that first sort level, tasks are sorted based on order of descending priority, as evaluated by priority, due date, threshold date, and completion status, in that order. If a task has no signifier of priority, it is sorted based on the order of the file.
A task with a well-formed Support for recurring tasks with the "rec:" tag. The “rec:” tag value's format is as follows: a number suffixed by d, b, w, m, or y (days, “business days” or weekdays, weeks, months, and years, respectively). To enable strict recurrence, prefix the pattern with a +.
When tasks with a well-formed "rec:" tag are completed, new tasks will be created with adjusted due dates (and, if they exist, adjusted threshold dates). The adjusted due date will be based on the task’s completion date (normal recurrence) or on the task’s due date (strict recurrence).
There is a setting for showing or hiding tasks with the "h:1" tag. When that setting is checked, any tasks with a "h:1" tag will be hidden.
Hidden tasks can be useful to keep your favorite projects and contexts available in the filter even after you have archived all your read tasks associated with them.
SwiftoDo Desktop does not collect any of your information, period. No data within the app or accessed by the app is transmitted to the developer.