Moving from TickTick

TickTick's backup is already a CSV. Rename a few columns, convert the priority numbers, import with a preview. Lists, tags, dates, repeat rules and completed tasks come across; habits and the Pomodoro log do not.

TickTick's export checked on ; the import path is that of OpenTodo v0.6.0

What comes across

  • Tasks, with their content as descriptions
  • Lists, as projects; folders as parent projects if you want them
  • Kanban columns, as sections
  • Tags, as labels
  • Due dates and times
  • Repeat rules written as RRULE, which OpenTodo reads when it can express them
  • Completed tasks, once the status column is converted
  • Subtasks, through the parent id column

What does not

  • Habits and their streaks, and the Pomodoro and focus records
  • Start dates (not in this release)
  • Reminders, unless the preview can read TickTick's spelling; set them again if not
  • Attachments and comments
  • Calendar subscriptions and shared lists (share again in OpenTodo)

Before you start

At the time of checking, TickTick’s export is a backup made from the web app (Settings → Account → Generate Backup), which downloads a CSV file of every list. The file starts with a few lines of notes above the real header, and its columns include Folder Name, List Name, Title, Content, Tags, Due Date, Reminder, Repeat, Priority, Status, Completed Time, Column Name, taskId and parentId. Trust your own file over this page.

OpenTodo reads a CSV with a header row and a title column; spaces in header names count as underscores, so Due Date is already due_date. The columns it understands are in the import reference.

Export from TickTick

  1. In the TickTick web app, open Settings → Account and select Generate Backup. Download the CSV. Import formats
  2. Open it in a spreadsheet and delete the note lines above the header row, so the header is the first line. Import formats

Tidy the file

  1. Rename Content to description. OpenTodo would otherwise read content as a second title column. CSV columns
  2. Rename List Name to project and Column Name to section. Lists become projects and Kanban columns become sections. Sections
  3. Rename taskId to id and parentId to parent. Subtasks then find their parents. Mapping rules
  4. Convert Priority. TickTick writes 5 (high), 3 (medium), 1 (low) and 0 (none); OpenTodo wants 1 to 4 with 1 the highest. Replace 5 with 1, 3 with 2, 1 with 3 and 0 with 4 (or with the words high, medium, low, none). CSV columns
  5. Convert Status. TickTick marks completed tasks with 2; rename the column to completed and replace 2 with yes, everything else with nothing. Completion times come from Completed Time if you rename it completed_at. CSV columns
  6. Leave Tags, Due Date and Repeat as they are. Tags become labels, Due Date is read as a date-time, and RRULE repeat rules are read when the rule can be expressed; the preview names any it cannot. Recurrence
  7. Reminders: OpenTodo reads durations such as -PT15M and 1 day; if the preview does not accept TickTick’s spelling, delete the column and set reminders again in the app. Reminders

Import into OpenTodo

  1. Open Settings → Data → Import data… and choose the file. Import from another app
  2. In the preview, check the time zone (dates with a zone are converted to it), then read the row list; problems come first with the row number and the reason. Nothing is written yet. Import from another app
  3. Select Import. One file brings all your lists; the tasks reach every device on its next sync. An import can be undone. Undo an import

Your first week

TickTick words, OpenTodo words

How TickTick's terms map to OpenTodo's
In TickTickIn OpenTodoNote
TaskTask
ListProject
FolderParent project
Section / Kanban columnSection
TagLabel
Priority High, Medium, Low, NonePriority P1, P2, P3, P4
RepeatRepeat rule
ReminderReminder
Pomodoro / estimated durationEstimateEstimates feed the Day and Week calendar.
HabitNo equivalentHabits are on the roadmap, not in this release.
Filter / Smart listSaved view

TickTick is named only to identify it; this page is not affiliated with it. The glossary maps the words of all four apps.

Bring your tasks over at your own pace.

Import into the demo first if you like: the sandbox is private and deleted after two hours. Then do it for real on your server.

OpenTodo is free and open source, with no paid tier. If it helps you, a star on GitHub helps other people find it, and a coffee helps keep it going.

Buy me a coffee