Skip to main content

Importing and Exporting

2Do can pull tasks in from other apps and calendar files, and push your lists back out as calendar files or spreadsheets. Everything lives under File > Import and File > Export. Import is a best-effort, one-time mapping: 2Do lines up the other app's concepts with its own as faithfully as it can, and does its best with anything that doesn't have a direct equivalent.

note

The Import menu is always available because calendar (.ics) import works everywhere. The From Things… and From OmniFocus… items only appear when those apps are installed on your Mac.

Import, Not Sync

Syncing with Things or OmniFocus is a frequent request. Neither app, however, syncs over an open standard such as CalDAV or two-way Apple Reminders — both of which 2Do supports — so there is no route for live sync between the apps. Reading each app's local database directly is the reliable alternative, and 2Do does it read-only, without changing anything in the other app.

Once imported, your tasks stay portable: sync onward over CalDAV or Apple Reminders, or export everything as a .csv spreadsheet or .ics calendar file at any time.

Import from Things

If Things is installed, choose File > Import > From Things….

  1. 2Do opens an intro dialog explaining that the import is a best-effort mapping. Click Locate Database (or Cancel to back out).
  2. An open panel appears, pre-navigated to the Things database with the message "Select a Things database package or folder containing main.sqlite." Confirm the selection and click Import.
  3. A progress sheet runs, then a "Things Import Complete" alert tells you it finished.

2Do reads the Things database directly, so Things doesn't need to be running. The structure carries over at full size: an Area becomes a List Group, every Project inside it becomes a list of its own, and its to-dos become tasks in that list. Here's how the two apps line up:

Things2Do
AreasList Groups
ProjectsLists
To-DosTasks
ChecklistsChecklist items
Tags & Tag GroupsTags & tag groups
When / DeadlineStart / Due dates
RemindersAlarms
Repeating To-DosRecurring tasks
SomedaySomeday list

A few details worth knowing:

  • A Project's notes are kept as the new list's notes, and a checklist on the Project itself arrives as tasks at the top of that list.
  • A to-do with a checklist becomes a 2Do checklist, with its items as sub-tasks.
  • To-dos that sit outside any Project land in a list named Things (inside their Area's group, or in a Things group when they had no Area). Loose Someday items get their own Someday list.
  • Tags used by your imported tasks come across, and Things' nested tags become 2Do tag groups. A tag applied to an Area or Project in Things is applied to each imported task instead, since 2Do lists don't carry tags of their own.
  • Completed to-dos keep their completion dates, and creation and modification dates are preserved.
  • If a group with the same name already exists in 2Do, the imported one is named Things: (name) rather than merging into yours.

Trashed items and headings are skipped (to-dos under a heading simply stay in their project's list); canceled to-dos are imported as completed tasks.

Import from OmniFocus

If OmniFocus is installed, choose File > Import > From OmniFocus…. The flow is the same as Things: an intro dialog, then an open panel pre-navigated to your local OmniFocus 4 database with the message "Select your local "Local.OmniFocusModel" database package."

2Do reads the OmniFocus 4 local database directly. Mappings:

OmniFocus2Do
ProjectsLists
Actions & GroupsTasks & sub-tasks
InboxInbox
TagsTags
FlaggedStarred
Defer & DueStart & Due dates
Estimated DurationDuration
RepeatsRecurring
note

The open panel is pre-navigated to the OmniFocus 4 database container. If your database lives elsewhere, navigate to it manually in the same panel.

One Import, Then It's Yours

Both imports are one-time copies. Things and OmniFocus keep your data in their own local databases rather than an open sync format such as CalDAV, so reading that database directly is the most faithful way to bring everything across — and 2Do reads it strictly read-only, so nothing changes in the other app. Nothing stays linked afterwards, either: from the moment the import finishes, the tasks are ordinary 2Do tasks, and later edits in the other app won't flow in.

That also means you're free to make the result your own. Rename or merge lists, drag tasks between them, gather lists into List Groups, retag, or convert tasks into projects and checklists — the import gives you a faithful starting point, not a layout you're committed to.

Import a Calendar File (.ics)

Choose File > Import > Calendar File (.ics) — this is always available, whether or not any other task app is installed.

  1. Pick an .ics file. The open panel is restricted to calendar files.
  2. In the "Import into:" popup, choose the destination list. This must be a normal list — Smart Lists and Focus lists can't be import destinations. The popup pre-selects the list you're currently viewing when it's a normal list.
  3. 2Do imports the tasks as a single undoable change and shows an "Import Complete" alert with the count and the destination list name.

Only VTODO items (to-dos) are imported. Calendar events (VEVENT) and journal entries (VJOURNAL) are ignored. Imported tasks flow through the same pipeline 2Do uses for CalDAV sync, so they carry their tags, locations, alarms, inline attachments, and recurrence.

Every imported task is given a fresh identity, so importing never overwrites or merges with tasks you already have — you always get new copies. Project and checklist hierarchy is rebuilt from the file's RELATED-TO relationships, with parents imported first; any item whose parent isn't in the file (or that would form a loop) comes in as a top-level task.

note

If the file contains no to-dos, 2Do reports "The selected calendar file does not contain any tasks."

Export a Calendar File (.ics)

Choose File > Export > Calendar File (.ics) to write your lists out as a standard calendar file.

  1. A save panel appears with the default filename 2DoList.ics and the message "Exports the selected calendars and their tasks as a calendar file (.ics)."
  2. In the accessory area under "Select calendars to export:", tick the checkbox for each list you want to include. A Select all switch checks or unchecks everything at once.
  3. Use the "Tasks to export:" popup to choose which tasks go out: All, Not Done, or Done. The default is All.
  4. Save the file.

The export scope is whichever lists you check — not the list you happen to be viewing. Each task is written as a VTODO, and RELATED-TO links are emitted only between parents and children that are both inside the exported set.

warning

No list is pre-checked when the panel opens, and if no list is checked nothing is exported — no file is written. Make sure at least one list is ticked before you save.

Export a Spreadsheet (.csv)

File > Export > Spreadsheet (.csv) sits right beside the calendar export and works the same way: a save panel with the same list-selection accessory (labelled "Select lists to export:", with Select all) and the same "Tasks to export:" popup (All, Not Done, Done). Choose your lists, pick the tasks to include, and save a .csv you can open in Numbers, Excel, or any spreadsheet app.

tip

Both exports honor the checkbox selection, so you can pull a single project into its own file or dump every list at once — just tick exactly the lists you need.

Export Just a Few Tasks

You don't have to export whole lists. Select the tasks you want in the task list, right-click, and choose Export Selection to CSV... — only the selected tasks land in the file.

Drag a Task to the Desktop (.twodo)

For a single task, skip the panels entirely: drag the task from the task list onto the Desktop (or any Finder folder) and 2Do writes it out as a .twodo task file, carrying the task's full detail. Hand the file to another 2Do user, or drop it back onto 2Do's Dock icon to import it as a task. Dragging a task into a text app pastes its plain-text representation instead.

Tips

tip

Import is best-effort. Concepts that map cleanly (lists, tasks, tags, dates, alarms, recurrence) come across faithfully, but anything without a direct 2Do equivalent is approximated or dropped. Give the imported lists a quick look-over before you rely on them.

note

Because calendar import always assigns fresh identities, running the same .ics import twice creates duplicates rather than updating the first copy.