Data portability

How to export your OmniFocus data — the complete guide

Everything in your OmniFocus database — projects, tasks, tags, repeat rules, review intervals — can leave with you. Here is every way out, for every version of OmniFocus, on Mac and iOS, including fixes for the errors no one else writes down.

A guide from the makers of SingleFocus · Works with OmniFocus 2, 3, and 4

Your task list is one of the most personal databases you own — years of projects, contexts, and the shape of how you actually work. You should never feel locked into one app to keep it. This guide covers the three ways to get a complete copy of your OmniFocus data out, how to choose between them, and what to do when an export misbehaves.

It is written to be useful whether you are switching apps, making a backup, or just want to know your data is portable. (We make SingleFocus, a cross-platform GTD app, and yes — one of the paths below produces a file we can import. But the export is yours regardless of where it goes. That principle has its own page.)

The short version. On OmniFocus 3.8 or 4 with a Pro licence, install the free SingleFocus export plug-in and run it — you get one JSON file with everything, including repeat rules and review intervals. On older versions, or without Pro, use File → Export → CSV. The rest of this guide is the detail behind those two sentences.

THE THREE PATHSWhat "export" means in OmniFocus

OmniFocus offers three fundamentally different ways out, and they preserve very different amounts of your data. Picking the right one is the whole game — so here is what each actually keeps.

1. CSV — the universal path

A spreadsheet-style dump available on every version of OmniFocus, on both Mac and iPhone/iPad. On a Mac it is File → Export; on iOS it is the only export format offered. CSV captures task name, project, tags, defer and due dates, completion, flagged state, estimated duration, notes, and the project hierarchy (encoded in the outline numbering). What it drops is everything structural: repeat rules, review intervals, and the sequential/parallel distinction. Good enough for a readable archive; lossy if you want to rebuild your system elsewhere.

2. TaskPaper — the middle path (Mac only)

OmniFocus can export plain text in a TaskPaper-flavoured format: hierarchy by indentation, and properties written as @defer(...), @due(...), @flagged, @parallel(false) tags. It preserves more meaning than CSV — including the sequential flag and some repeat information — and it is human-readable. The catch: it is Mac-only, and the format is convention, not a strict schema, so importers have to interpret it.

3. The JSON plug-in — the complete path

OmniFocus has a built-in JavaScript automation layer (Omni Automation) on both Mac and iOS. A plug-in can walk your entire database and emit structured JSON with everything: folders, the full tag hierarchy, projects with status and review intervals, the complete task tree, and — crucially — repeat rules as standard iCalendar RRULE strings plus OmniFocus's repeat method (fixed, defer-again, due-again). This is the only path that loses nothing structural. We maintain a free, open-source one: singlefocus-co/omnifocus-export. It runs entirely on your device, makes no network requests, and never writes to your database — the security model is documented and the whole thing is one readable file you can audit in a minute.

DECISION MATRIXWhich path is available to you

Availability depends on three things: your OmniFocus version, your device, and whether you have the Standard or Pro licence. Find your row.

Your setupBest pathFallbackNotes
OmniFocus 4 — Pro
(Mac / iPhone / iPad)
JSON plug-in CSV Full fidelity. Same plug-in on every device.
OmniFocus 3.8+ — Pro
(Mac / iPhone / iPad)
JSON plug-in CSV Automation arrived in 3.8. Free update within v3.
OmniFocus 3 / 4 — Standard CSV TaskPaper (Mac) Plug-ins need Pro. Most GTD power users already have Pro (perspectives are Pro-only).
OmniFocus 3.0–3.7 CSV Update to 3.8+ first Pre-automation. The update is free and unlocks the plug-in.
OmniFocus 2 (Mac) CSV TaskPaper (Mac) No automation at all. Note: v2 has contexts, not tags — one context per task.
OmniFocus 2 (iOS) Discontinued Export from a Mac The iOS app won't run on modern iPhones. Treat as retired.

One simplification falls out of this: if you keep custom perspectives, you have Pro, which means the plug-in is open to you — so for most serious OmniFocus users, the complete path is the right path.

CSV & TASKPAPERThe built-in exports, step by step

CSV on a Mac

  1. Select the items you want (or show everything in a flat list first, so nothing is hidden by a perspective filter).
  2. Choose File → Export…
  3. Pick the comma-separated values (CSV) format and save.

There is a UTF-16 variant of the export for databases with non-ASCII characters. If your tasks contain accented characters and the plain export looks garbled when opened, re-export using that variant.

CSV on iPhone or iPad

  1. Open the app's settings and find the data / export option.
  2. Choose Export to CSV — on iOS this is the only export format.
  3. Save the file through the standard share sheet (to Files, email, or a cloud drive).

TaskPaper (Mac)

Export plain text from the File menu, or select tasks and use Copy as TaskPaper to put a TaskPaper-formatted copy on the clipboard — that route carries properties like due dates, tags, and repeat type. Useful when you want something both portable and readable.

THE PLUG-INThe complete export, step by step

This is the path that keeps everything. It needs OmniFocus 3.8 or 4 with a Pro licence, and works identically on Mac, iPhone, and iPad.

Install

  1. Download the latest release of singlefocus-co/omnifocus-export — it comes as a .zip (see the warning below for why).
  2. Unzip it to get the singlefocus-export.omnifocusjs file.
  3. Mac: double-click the file and confirm the install. iPhone/iPad: save it to Files, tap it, choose to open it in OmniFocus, and confirm.

Why a zip, and not the bare file? The .omnifocusjs extension is unknown to most browsers and web servers, so a bare file frequently downloads as a .txt and silently won't install. Distributing it zipped sidesteps that. If you do end up with a .txt, the fix is in the troubleshooting section below.

Run it

Where the run command lives differs between OmniFocus 4 and 3 — this trips up almost everyone on OmniFocus 3, so it has its own troubleshooting entry too.

On first run, OmniFocus shows a one-time security confirmation. Approve it, then choose where to save the JSON file. You'll get a summary like "12 projects, 552 tasks, 3 tags, 3 folders exported."

TROUBLESHOOTINGWhen the export misbehaves

These are the real failures we hit getting this working on actual devices — with the exact error text, so you can find this page by searching for it. Each one has a one-line fix.

"Cannot parse the contents of file … as UTF-8."

Error loading plug-in. Cannot parse the contents of file:///…/singlefocus-export.omnifocusjs as UTF-8.

The plug-in file was re-encoded somewhere in transit — usually by opening it in a text editor or preview, or passing it through an email gateway, which can convert a character and break the file's UTF-8 encoding. OmniFocus then refuses to load it.

Fix: re-download the file fresh from the Releases page and don't open it in an editor before installing. (The plug-in is intentionally written as pure ASCII to make this as unlikely as possible — but a re-encode in transit can still trip it.)

OmniFocus on iPhone showing an 'Error loading plug-in. Cannot parse the contents of file as UTF-8' dialog.
The UTF-8 error on iOS. The file reached the phone re-encoded; a clean re-download fixes it.

The file downloaded as .txt

singlefocus-export.omnifocusjs.txt

Expected when downloading a bare .omnifocusjs file: the server hands it over as plain text and the browser appends .txt. A file with the wrong extension won't install.

Fix: download the .zip release instead and unzip it — the extension stays intact. If you already have the .txt, rename it in Files to end in .omnifocusjs (delete the trailing .txt) and confirm when the system warns about changing the extension.

"I can't find where to run the plug-in" (OmniFocus 3)

On OmniFocus 3 the Automation button is not on the Home screen by default — which makes it look like the install failed when it didn't.

Fix: open the Projects perspective and look in its toolbar; the automation icon appears there once a plug-in is installed. It also shows up in the Share sheet of any task. Or, to put it everywhere: enable Developer Tools in OmniFocus 3's Settings, which adds the Automation button to the Home screen bottom bar as well — so you don't have to dig into a perspective to find it. On OmniFocus 4 it's in the Automation menu directly.

OmniFocus 3 Home screen on iPhone, showing Forecast, Inbox, Today, Nearby, Flagged, Projects, Planning, Review and Tags tiles — with no Automation button visible.
OmniFocus 3's Home screen has no Automation button. It lives in the Projects, Tags, and Review perspectives instead.

The action opens a settings sheet instead of running

Tapping the chevron next to the action opens its settings (keyboard shortcut, visibility) rather than running it. Nothing is wrong — you just opened the wrong control.

Fix: make sure Show Action in: Automation Menu is on, then dismiss this sheet and tap the action's name (not its chevron) from the Automation menu to run it.

OmniFocus plug-in action settings sheet titled 'Export for SingleFocus', showing keyboard shortcut modifier toggles and a 'Show Action in: Automation Menu' switch turned on.
This is the action's settings sheet, not the action itself. Confirm "Automation Menu" is on, then run it from the menu.

"It says I need Pro"

Plug-ins are an OmniFocus Pro feature — Omni's restriction, not the plug-in's.

Fix: on the Mac, use File → Export → CSV as a fallback (less complete — no repeat rules or review intervals). In practice this rarely bites GTD power users, since custom perspectives are also Pro-only, so most people who'd want a full export already have Pro.

Duplicate "Export for SingleFocus" entries

Re-installing the plug-in creates numbered copies (…-2, …-3), so you can end up with several identical actions and run a stale one.

Fix: open the plug-in list (or the Plug-In Details screen) and delete the older copies, keeping only the latest version.

OmniFocus Plug-In Details screen showing the SingleFocus export plug-in: name, identifier co.singlefocus.export-json, version 1.1, author SingleFocus, and an 'SF Export' action.
The Plug-In Details screen, where you can confirm the version and remove duplicate installs.

VERIFYConfirm your export is complete

Whichever path you used, do a quick sanity check before relying on the file:

WHAT TRAVELS, WHAT DOESN'THonest limits

No OmniFocus export is perfectly lossless, and it's better to know the gaps up front than discover them later:

The JSON plug-in keeps everything else: the project and folder structure, the full tag hierarchy, defer and due dates, completion and drop dates, flags, estimated durations, review intervals, and repeat rules. A good importer should show you a report of exactly what came through, so nothing fails silently.

Moving from OmniFocus to SingleFocus?

SingleFocus is a cross-platform GTD app with defer dates, sequential projects, perspectives, tags, and a real weekly review — without the Apple-only constraint. The JSON export above is built to import directly, repeat rules and all.

If you're weighing the switch, the OmniFocus alternative comparison lays out the feature-by-feature detail, and the Data Manifesto covers how we treat the data once it's in.

Start free →