Todoist CSV export, backups, and your missing completed tasks
Todoist exports a project as CSV from the project menu, and paid plans keep up to 21 automatic backups. Neither includes your completed tasks. The Export to Google Sheets extension does include them, but drops labels, deadlines, comments, attachments and reminders in exchange.
For most Todoist users the completed list is the history, so this is worth understanding before you need it. Below: what each route actually produces, what the export quietly changes on the way out, and how to move a project somewhere else. Todoist's behaviour was checked against Todoist's own documentation on August 13, 2026.
1. What can you get out of Todoist?
Three routes, and the useful way to compare them is by what each one refuses to give you.
| Route | Completed tasks | Labels, deadlines, comments, attachments | Who can use it |
|---|---|---|---|
| Project CSV export | No | Yes | Any plan, one project at a time |
| Export to Google Sheets extension | Yes | No | Any plan, one project at a time |
| Backups | No | Yes | Paid plans only, all active projects at once |
Read across the first two rows and the shape of the problem is clear: the two file routes are complements rather than alternatives. If you want everything, you run both and reconcile them yourself, because Todoist offers nothing that produces a complete picture in one file.
And nothing on that list covers archived projects, which are excluded from backups and are not available to export in the first place.
2. How do you export a Todoist project as CSV?
It is a per-project action, from the project itself rather than from settings:
- Open the project.
- Click the three dots icon at the top-right to open the project menu.
- Click Export as CSV.
The file saves automatically. Todoist describes the result as "an exact duplicate of the original project", and lists what that includes: task, section and project descriptions, dates, time, comments and attachments.
That is genuinely more than most task tools put in a CSV, and it is worth saying plainly because the rest of this article is about limits. A Todoist project CSV holds the comments on your tasks. Trello's does not, and Airtable's does not.
The file opens badly in Excel
Todoist's CSV is semicolon-delimited, so opening it in Microsoft Excel typically lands the entire file in column A. The fix is in Todoist's own documentation:
- Click column A to select the whole column.
- Click the Data tab, then Text to Columns.
- Select Delimited, click Next.
- Tick only the Semicolon box, then click Finish.
Nothing is wrong with the file when this happens, and nothing is lost. It just does not look like an export until you have done this.
3. Why are your completed tasks missing?
Because Todoist excludes them by design. Its documentation states it in one line: "completed tasks aren't included when exporting a project as a CSV file."
This matters more in Todoist than it would elsewhere. In a kanban tool, finished work sits in a Done column and exports with everything else. In Todoist, completing a task removes it from the list, and the completed view is where your record of what you actually did lives. Export the project and you get the work still outstanding, which for a well-maintained project can be a small fraction of what the project has been.
It also means the obvious mental model of an export is wrong here. A Todoist project CSV is not a snapshot of the project's history. It is a snapshot of the project's remaining work, with full detail attached.
If your completed history is what you are after, the next section is the only documented route to it, and it costs you almost every other field.
4. How do you export completed tasks to Google Sheets?
Todoist's own answer to the problem above is an integration you have to add first:
- Click your avatar in the top-left, select Settings, then Integrations.
- Click Browse, find Export to Google Sheets, click Add and confirm.
- Open a project, click the three dots icon, and choose Export to Google Sheets.
- Tick the fields you want, and run it.
The first run asks you to sign in to Google and grant read-only access to application data.
What you get is active and completed tasks, with due date, priority, creation date, description, section and assignee. What you do not get is everything else: this route excludes labels, deadlines, comments, attachments and reminders.
So the two exports are mirror images. The CSV keeps the texture of your project and forgets what you finished. The Sheets extension remembers what you finished and forgets the texture. If you are archiving a project you care about, run both on the same day and keep them together, because neither file can be reconstructed from the other later.
5. What do Todoist backups actually save?
Backups are the closest thing to an account-wide export, and they are a paid-plan feature. Todoist creates a full backup on days you have been active and made changes, stores up to 21 of them as ZIP files, and creates them at midnight in your time zone. Your projects are stored inside as CSV files. When a new backup is made, the oldest is deleted automatically.
To get one: open Settings, go to the Backups tab, and click Download next to a backup. If you have two-factor authentication switched on, you will need a one-time password from your authenticator app to reach the tab at all. There is also a Create Backup button for taking one on demand, which is the one to use before any large reorganisation.
A backup includes your active projects and tasks and your recurring dates. It does not include, in Todoist's words, completed tasks and archived projects.
That last exclusion is the one that catches people. Archiving a project in Todoist feels like filing it rather than deleting it, so it is a natural thing to do with finished work. But an archived project is in no backup and in no export, which means the only copy of it is inside your Todoist account.
Restoring is per project rather than wholesale: create a new project, choose Import from CSV, and upload one of the project CSVs from the ZIP. The active tasks, dates, comments and file attachments come back, and Todoist keeps the list, board or calendar layout the project had.
6. What else does the export change on the way out?
Three things, and the first alters your data rather than omitting it.
Recurring tasks lose the start of the recurrence. Todoist is specific: the start date of a recurring date is not saved in the CSV. Its own example is that a task recurring "every year starting January 31" comes out as simply "every year". The task still recurs, on a schedule that no longer says when it began. On a project built around annual or quarterly commitments, this is the kind of change that survives an import and only shows itself much later.
Imports cap at 300 tasks per project. If a CSV has more than 300 task rows, Todoist says the import cannot be completed, and that large imports can trigger multiple errors. The documented fix is to split the file and import the pieces one at a time. Worth knowing before you plan a restore, because a project can easily grow past that.
The file has to be UTF-8. Todoist will not import a CSV encoded any other way, which is easy to trip over after editing a file in Excel: use CSV UTF-8 (Comma delimited) when saving, or Unicode (UTF-8) in Numbers.
One more thing to know before you import anything: there is no undo. Todoist states that a successful CSV import cannot be reversed, and the workaround is to bulk-select and delete what arrived. Import into a new, empty project rather than into a live one, so that undoing a mistake means deleting a project rather than untangling two sets of tasks.
7. How do you move a Todoist project to TickTick, ClickUp or Notion?
Two of these read your Todoist account directly, which matters more here than usual: a direct connection is the only way to avoid the semicolon-delimited file and the 300-task ceiling. The others take the CSV and inherit whatever it already lost.
| Destination | How you move | The limit that catches people out |
|---|---|---|
| TickTick | Built-in Todoist import, from Settings | The closest like-for-like move, but still no completed-task history |
| ClickUp | Built-in Todoist importer, reads your account | ClickUp states it cannot import attachments from Todoist at all |
| Notion | CSV import | No Todoist importer, and a repeated import adds rows rather than updating them |
| Google Sheets | The Export to Google Sheets extension | Completed tasks yes, labels, deadlines, comments and attachments no |
| Breeze | Built-in Todoist importer, reads your account | Completed tasks are not carried, as with every other route |
Todoist to TickTick
TickTick is the direct competitor and offers a one-click Todoist import from Settings → Import & Integration, alongside Microsoft To Do and Any.do. It is the least disruptive move on this list, because the two products model projects, sections, sub-tasks and labels the same way.
What it does not solve is the thing this whole page is about. Your completed history is not in any file Todoist produces, so it is not in TickTick either. If that history matters, run the Google Sheets export before you switch and keep the sheet.
Todoist to ClickUp
ClickUp has a first-party Todoist importer that authorises against your account rather than reading a file, so the CSV limits do not apply. It brings priorities, comments and sub-tasks. ClickUp is direct about the exception: "due to Todoist limitations, we are unable to import attachments from Todoist."
Todoist to Notion or a spreadsheet
Notion has no Todoist importer, so this is the CSV route, and Notion adds two constraints of its own: a CSV import cannot create relations, and imports add rows rather than updating existing ones, so a retry duplicates rather than corrects. Convert the semicolon-delimited file to comma-separated UTF-8 first, using the steps in section 2.
For a spreadsheet, use the Google Sheets extension rather than the CSV. It is the only route that includes your completed tasks, and a spreadsheet is the one destination where losing labels and comments does not much matter.
Destination importers were checked against each vendor's documentation on August 13, 2026.
8. How do you move Todoist projects into Breeze?
Breeze reads your Todoist account through the API, so there is no file, no encoding to fix and no semicolons. It connects with read access, shows what it is about to do, and changes nothing in Todoist.
Being straight about scope, because a Todoist user knows exactly how much data they have: this is the smallest import Breeze does. Todoist has no custom fields and no time tracking, so there is nothing of that kind to carry. What comes across is your projects, sections, tasks, sub-tasks, comments and labels.
Running the import
In Breeze, open the menu in the top-right corner, select Settings, open the Import tab and select Import next to Todoist. The wizard runs in four steps: connect, choose the projects, match people, and review before anything is written.
What comes across from Todoist
| Todoist | Breeze | Import behaviour |
|---|---|---|
| Project | Project | Each selected project becomes a project, unless you import into an existing one |
| Sections | Lists | Each section becomes a column; tasks with no section go to a "No Section" column |
| Tasks | Tasks | Names, descriptions, due dates and assignees are imported |
| Sub-tasks | Subtasks | Imported as checklist items on the parent task |
| Labels | Tags | Carried across |
| Comments | Comments | Imported |
| Duration | Estimate | Todoist's duration is an estimate rather than tracked time, so it lands as one |
| Attachments | Not imported | Todoist's file URLs require authentication, so a stored link would not open |
Two honest limits, in keeping with the rest of this page. Completed tasks are not brought across, so the boundary that shapes every Todoist export applies here too. And attachments are skipped rather than linked, because Todoist's file URLs need authentication and a saved link would fail for anyone who clicked it, so download anything you want to keep before you move.
What you do get that a file cannot give you: the import runs against the live account rather than a per-project download, so a dozen projects arrive in one pass instead of a dozen exports, and running it again offers to update what it created last time rather than making a second copy.
If you are still comparing rather than moving, Todoist alternatives is the wider view. Exporting is worth doing either way, because it shows you how much of your Todoist account is portable and how much of it only exists while the account does.
Common questions about exporting Todoist data
- Can you export completed tasks from Todoist?
- Only through the Export to Google Sheets extension, which exports active and completed tasks with due date, priority, creation date, description, section and assignee. The project CSV and backups both exclude completed tasks entirely.
- Do Todoist backups need a paid plan?
- Yes. Automatic backups are a paid-plan feature. On the free plan, exporting each project to CSV by hand is the equivalent, and it misses the same completed tasks a backup would.
- Why does your Todoist CSV open as one column in Excel?
- The file is semicolon-delimited. Select column A, then Data, Text to Columns, Delimited, tick only Semicolon, and Finish. Nothing was wrong with the export.
Take both exports, and take them today
If a Todoist project matters to you, run the CSV export and the Google Sheets export on the same day and file them together. Neither is complete, they fail in opposite directions, and there is no third file that reconciles them. If you are on a paid plan, take a manual backup as well, and remember it covers active projects only.
And if you are moving rather than archiving, skip the files: they cannot carry your completed tasks anyway. See exactly what Breeze imports from Todoist, then try it with one project before you move the rest.



