Compare commits

...

3 Commits

Author SHA1 Message Date
2ee6b190b4 Update README 2025-10-19 10:22:29 -04:00
e47443739b Update README 2025-10-19 01:20:10 -04:00
8cbf986847 Why? 2025-10-18 22:09:21 -04:00

View File

@ -1,6 +1,6 @@
# Todoist Actual Backup # Todoist Actual Backup
Todoist is a SaaS task manager. Todoist provides backups of current tasks, but does not include completed tasks. Nor does it provide a human-readable backup. This Python script provides a command-line tool to export all available active and completed tasks from the Todoist API to a JSON file, including attachments, subtasks and comments, and generates a human-readable HTML backup. Todoist is a SaaS task manager. Todoist provides backups of current tasks, but they do not include completed tasks, subtask relationships, comments or attachments. Nor does it provide a human-readable backup in HTML. This Python script provides a command-line tool to export all available active and completed tasks from the Todoist API to a JSON file, including attachments, subtasks and comments, and generates a human-readable HTML backup.
## Features ## Features
- Exports all active and completed tasks from all projects (active and archived) - Exports all active and completed tasks from all projects (active and archived)
@ -19,17 +19,18 @@ Todoist is a SaaS task manager. Todoist provides backups of current tasks, but d
source .venv/bin/activate source .venv/bin/activate
pip install -r requirements.txt pip install -r requirements.txt
``` ```
- Get your API key from [Todoist](https://app.todoist.com/app/settings/integrations/developer)
- Optionally set your Todoist API key in the `TODOIST_KEY` environment variable. If the environment variable is not set, the script will prompt for it.
## Usage ## Usage
1. Run `source .venv/bin/activate` if needed to enter the virtual enivronment. 1. Run `source .venv/bin/activate` if needed to enter the virtual enivronment.
2. Set your Todoist API key in the `TODOIST_KEY` environment variable. If the environment variable is not set, the script will prompt for it. 2. To see usage instructions, run the script with no arguments or any argument other than `export`.
3. Run the script with the `export` argument: 3. Run the script with the `export` argument:
```bash ```bash
python export_todoist.py export python export_todoist.py export
``` ```
This will create `output/Todoist-Actual-Backup-YYYY-MM-DD.json` and `output/Todoist-Actual-Backup-YYYY-MM-DD.html`, and it will update `output/attachments/` with any downloaded files while leaving `Todoist-Completed-History.json` in the project root. This will create `output/Todoist-Actual-Backup-YYYY-MM-DD.json` and `output/Todoist-Actual-Backup-YYYY-MM-DD.html`, and it will update `output/attachments/` with any downloaded files while leaving `Todoist-Completed-History.json` in the project root.
Keep `Todoist-Completed-History.json` somewhere safe (e.g., in source control or a backup location); it is the only way the exporter can retain completions older than Todoist's 90-day API retention window. Keep `Todoist-Completed-History.json` somewhere safe (e.g., in source control or a backup location); it is the only way the exporter can retain completions older than Todoist's 90-day API retention window.
4. To see usage instructions, run the script with no arguments or any argument other than `export`.
## Requirements ## Requirements
- Python 3.8+ - Python 3.8+