Export, import and templates
You can take projects out of Focus one, and save projects as templates and read them in again.
| Function | Plan |
|---|---|
| Markdown export of projects (for Obsidian, email, notes) | Free |
| Load tutorial projects | Free |
| Export and import templates (text/YAML) | Pro |
Markdown export
How to export. Open a project and, in the Share menu, choose Share Markdown (share sheet: Mail, Notes, Obsidian …) or Save Markdown as File … (file dialog). The menu is also in the context menu of the project list. The Markdown export is free and applies to single projects only, not to lists. It is meant for reading, not for importing again.
What the result looks like. The project title is the heading, followed by area and deadline on one line, then the project note. Open tasks follow in project order as checkbox lines (- [ ]), headings as ##. Scheduled completion date and deadline are in parentheses after the title, notes are indented below, and checklists are indented checkbox lines. Completed tasks are at the end under “Completed Tasks” as - [x], with the date. The file name is the project title with the extension .md.
Templates in YAML format
Focus one reads projects with their tasks from a YAML text file. The project export (Share, Pro) produces exactly this format. So you can edit exported projects and import them again, write your own templates or convert lists from other apps.
Download the template
The import template explains every field and shows several examples. You can import it yourself to try everything out. This creates the area “Example” and several example projects, which you can delete afterwards.
File structure
- Each project starts with the line
project:at the very left of the line. The project fields follow, and the tasks go undertasks:. - A file can contain any number of projects. The tasks keep the order of the file.
- Don’t write a line in notes that starts with
project:at the far left. Indented is fine. - Alternatively, you can give several projects as a list under
projects:. Then only this form applies; the two notations can’t be mixed (example 8 in the template). - Save the file as UTF-8 and indent with spaces, not tabs. Comments with
#, single and double quotes and block notation for multi-line text are allowed.
Project fields
| Field | Required | Meaning |
|---|---|---|
title |
yes | If the title is empty (""), no project is created. The tasks then land in the area without a project. |
note |
no | Project note, multi-line with \n or in block notation |
area |
no | Area of the project. The name is compared exactly; a missing area is created. Without it, the project has no area. |
format |
no | s, serial or seriell gives a sequential project (Pro; without Pro it is imported as parallel). p, parallel, f, free, frei or any other value gives a parallel project. |
deadline |
no | Deadline of the project |
Task fields
| Field | Required | Meaning |
|---|---|---|
title |
yes | A task without a title aborts the entire import. Only headings may have an empty title. |
note |
no | Note, supports bold |
list |
no | Target list, all lowercase: inbox (Inbox), next (Next), planned (Scheduled), waiting (Waiting for), anytime (Anytime), deferred (Someday). If the value is missing or unknown, for example focus or done, the task goes to “Anytime”. |
header |
no | true turns the entry into a heading instead of a task |
duedate |
no | Scheduled completion date |
deadline |
no | Hard deadline, independent of the scheduled completion date |
checklist |
no | Short form (list of texts) or long form with title and done. true, yes, ja and x count as done; empty entries are discarded. |
Not importable are tags, reminders, repetitions, attachments, Focus and the status “done”.
Date formats
Applies to duedate, deadline and the project deadline. Always write dates in quotation marks.
| Notation | Meaning |
|---|---|
"2026-12-24" |
Date |
"2026-12-24T18:30" |
Date and time, also with seconds (:00) |
"2026-12-24T18:30:00.000Z" |
ISO 8601 with time zone, only with milliseconds |
"d10" |
Today plus 10 days, "d0" is today, "d-1" yesterday, always without a time |
"m1" |
Today plus 1 month |
Dates that can’t be read are ignored without an error message. The field then stays empty.
What happens to the lists on import
| Case | Result |
|---|---|
Task with duedate |
Lands in “Scheduled”. Exception waiting: the task stays in “Waiting for”, and the date serves as a follow-up date there. |
list: deferred |
An existing date is removed; “Someday” is always without a date. |
list: inbox with a project |
Lands in “Anytime”, because tasks with a project don’t belong in the Inbox. |
list: planned without duedate |
Lands in “Anytime”. |
Tasks without a project (title: "") |
Land in the area; the given list is respected. |
A small example
project:
title: "Plan a vacation"
area: "Family"
format: "p"
deadline: "m3"
tasks:
- title: "Preparation"
header: true
- title: "Book the ferry"
duedate: "d7"
deadline: "d14"
checklist:
- "Check dates"
- title: "Compare prices"
done: true
- title: "Get a travel guide"
list: "next"
The ferry lands in “Scheduled” because of its date, the travel guide in “Next”, and the heading structures the list.
Common mistakes
- A task without
titleaborts the whole import. - Tabs instead of spaces for indentation.
- A date without quotation marks or in another format: it is ignored without a notice.
- An area name spelled differently creates a new area.
- A capitalized or unknown list name sends the task to “Anytime”.
- Both notations (individual
project:blocks and aprojects:list) in one file.
Note on checking with YAML tools. The file consists of several blocks with project: at the top level. A general YAML validator may therefore report errors about duplicate keys. Each individual block is valid YAML; Focus one reads the file as a whole.
Export and import in the app
Exporting YAML (Pro). In the same Share menu of a project: Share YAML (Pro) or Save YAML as File … (Pro). The file is named like the project and ends in .yaml. At the top there are comments about the date formats and a note that, for a reusable template, you can replace absolute dates with relative values (d10, m1). Without Pro, Focus one shows the paywall.
Importing YAML (Pro). In the project list, tap the … menu (circle with three dots) and choose Import from Project Template. Then pick a YAML file in the file dialog. Without Pro, the paywall appears. The tutorial projects load even without Pro.
After the import, Focus one shows no confirmation. Check the result in the project list.
Import with a shortcut (Pro). The Shortcuts action Create Project from Template takes the YAML text directly, without a file dialog. More in Siri and Shortcuts.