Import

Import from Todoist

Export each project as CSV, then drop the file into Pikos.

Todoist exports per-project CSV files from its web app. Pikos auto-detects the format from the headers and brings across tasks, descriptions, fixed dates, priorities, and labels.

1. Export from Todoist

In Todoist, open a project. Click the menu at the top right and choose Export as template → Export as CSV. Todoist downloads a file named after the project.

Todoist doesn't export everything in a single archive, so you'll end up with one CSV per project. That's fine. Import them one at a time. There's no batch option on Todoist's side.

2. Import in Pikos

Open Settings (Cmd+,), go to the Data tab, and click Select File next to "CSV". Pick the CSV you exported.

Pikos reads the headers, recognizes the Todoist format, and pre-fills column mappings. CONTENT becomes the page title, DESCRIPTION becomes the body, DATE becomes the scheduled date, and so on. Sample values from your file appear next to each column so you can sanity-check the mapping.

3. Preview, then commit

The preview shows the pages that will be created. A Skip completed toggle lets you leave finished tasks behind. Skipped columns are listed with a short explanation, so nothing disappears silently. Hit Import and repeat for the next project CSV.

What comes across

  • Tasks — each task row becomes a Pikos page. Task titles (CONTENT) and descriptions (DESCRIPTION) are preserved.
  • Notes — Todoist exports task comments as separate rows with TYPE=note. Pikos merges them into the previous task's body so you don't lose context.
  • Priorities — Todoist's CSV uses 1–4 (where 1 is urgent and 4 is no priority in the UI). The importer maps 1 → Urgent, 2 → High, 3 → Medium, 4 → None.
  • Fixed dates — date-only values like 2026-06-15 come across as all-day. Structured date-with-time values are preserved as timed events.
  • Durations — if a task has DURATION=30 and DURATION_UNIT=minute, Pikos uses that to compute the end time of a timed event.
  • Labels — become Pikos tags.
  • Deadlines — Todoist's optional DEADLINE field maps to the scheduled end date.

What doesn't come across

  • Projects (folders) — Todoist's CSV doesn't include the project name as a column — it's only in the filename. Imported tasks land in your Pikos Inbox by default. You can create a folder in Pikos first and move them after import, or rename the Inbox section if it's a one-off.
  • Sub-tasks — Todoist signals nesting via an INDENT column rather than parent IDs, and the importer doesn't reconstruct hierarchy from indent levels. Sub-tasks land as flat sibling pages. Parent/child structure has to be rebuilt by hand in Pikos.
  • Sections — Todoist sections within a project export as their own rows (TYPE=section) and the importer drops them entirely. The tasks underneath each section still come through, just without the section grouping.
  • Recurring rules — Todoist stores repeats as natural-language phrases ("every Monday", "every 2 weeks at 9am") rather than as a structured rule. Each task imports with only its next due date; the repeat itself doesn't carry. Recurrence support for Todoist is on the roadmap.
  • Natural-language dates — phrases like "tomorrow", "in 3 days", or "next Friday" don't parse on import. If your task uses one of these instead of a fixed date, it imports with no scheduled date and you'll need to re-set it in Pikos.
  • Reminders — Todoist doesn't include reminder times in the CSV export. Re-add critical ones in Pikos.
  • Completed tasks — Todoist's standard CSV export only includes active tasks. Completed history lives behind the "Activity log" view, which isn't part of the CSV.
  • Filters, saved views, karma history — query definitions and gamification state aren't part of the export.

If something goes sideways

Imports are reversible. Pikos snapshots the database first, every imported page is tagged with the import batch, and Settings → Data → "Undo last import" removes the lot. You can re-export from Todoist and try again with no leftovers.

Pikos is launching soon. When it lands, the CSV importer is in the Data tab.