Save data from Todoist to a SQLite database. Supports saving tasks, projects, filters, notes, labels, and completed tasks.
(Some Todoist features require Premium, like fetching completed tasks)
$ pip install todoist-to-sqlite
In the Todoist client, go to the Integrations tab of Settings and issue/copy your personal API token. Run this command and paste in your API token:
$ todoist-to-sqlite auth
This will create a file called auth.json
in your current directory containing the required value. To save the file at
a different path or filename, use the --auth=myauth.json
option.
The sync
command retrieves all "active" data associated with your Todoist account.
$ todoist-to-sqlite sync todoist.db
This includes: uncompleted tasks, projects, labels, filters, and notes.
The completed-tasks
command saves all completed tasks from your Todoist account. This may take a long time to download for active Todoist users.
$ todoist-to-sqlite completed-tasks todoist.db
completed-tasks
also will sync any associated metadata (i.e. archived projects) associated with completed tasks.
Note: This command requires Todoist Premium due to limitations of their API.
You can specify --from_date
and --to_date
to place boundaries on the time range that todoist-to-sqlite
will fetch completed tasks from.
$ todoist-to-sqlite completed-tasks todoist.db \
--to_date 2020-12-01 \
--from_date 2020-12-30
This package is heavily inspired by goodreads-to-sqlite by Tobias Kunze and github-to-sqlite by Simon Willison.
This package was designed to fit nicely in the dogsheep / datasette ecosystems.