Skip to content

Latest commit

 

History

1 Commit

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 

Repository files navigation

Omnifocus to Todoist Migrator

A simple script that will take your omnifocus CSV and create a new one, formatted to the template that todoist requires

How to run it

  1. Pull down this repo: git clone git@github.com:esthor/omnifocus-to-todoist-migrator.git
  2. In Omnifocus -> File -> Export -> (Export as a CSV) -> Save to the folder where this script repo is and name it OmniFocus.csv (or change the INPUT_FILE constant in the script).
  3. run python script.py (or python3 script.py)
  4. A Todoist_Projects folder will be created, with a CSV file for every project from your Omnifocus CSV export. (Due to limitations of Todoist import.)
  5. In Todoist -> Project -> Click the 3 dots -> Import CSV
  6. Profit.

(More info on importing, from the Todoist Docs)

Some Caveats

  1. Completed Tasks get dropped during migration. (Todoist import doesn't support them.)
  2. Exports to project-based CSVs. (Todoist import doesn't support multiple projects.)
  3. YMMV -- It worked on my machine, for my ~1000 Omnifocus tasks across dozens of projects...but it may not work for you. Open an issue if you've got a problem or submit a PR if you've got a better solution! 🙏

Some Notes about format assumptions

This is probably not interesting to anyone else, but it's useful for debugging and for reference later, especially if these underlying formats change in the future.

Omnifocus Format

Column Content Description
Task ID Identifier for the task or project Unique ID for each entry.
Type Inbox, Action, Project Specifies the type of entry.
Name Name of the task or project Title or description.
Status Status of the task Indicates if active, completed, etc.
Project Associated project Links the task to a project.
Context Context or category Additional categorization.
Start Date Start date of the task When the task begins.
Due Date Due date of the task Deadline for the task.
Completion Date Completion date of the task When the task was completed.
Duration Estimated duration Time required for the task.
Flagged Flagged status Indicates priority or importance.
Notes Additional notes Extra information about the task.
Tags Tags associated with the task Keywords for categorization.

Todoist Format

(Based on: This todoist reference doc)

Column Content Description
TYPE task, section, or note Use task to add a task. Use section to add a section. Use note if you're adding a comment to the task in the row above. Values are case-sensitive and should be written in lowercase.
CONTENT Text Type the name of the task if you're adding a task (you can add labels by typing the @labelname as part of the task name). Type the name of the section if you're adding a section. Type the content of the note if you're adding a comment.
DESCRIPTION Text Type the content of the task description if you'd like to add a description.
PRIORITY 1, 2, 3, or 4 Type 1 to add p1 to the task (highest priority). Type 2 for p2, 3 for p3, and 4 for p4 (lowest priority). Leaving this cell empty will automatically add p1 to the task.
INDENT 1, 2, 3 or 4 Use 1 for no indent (parent task). Use 2 to indent the task to be a sub-task. Use 3 to indent the task to be a sub-sub-task, and so on. Leaving this cell empty will set the task to not be indented.
AUTHOR username (ID) Add the username + user ID in brackets of the person that created the task (e.g., Evan (14781400)). Leaving this cell empty will automatically add your name and ID.
RESPONSIBLE username (ID) Add the username + user ID in brackets of the person that you'd like to assign this task to (e.g., Evan (14781400)). Leaving this cell empty will not add an assignee to the task.
DATE date and time Add a date and time if you want to schedule the task. You can also set a recurring date. If this cell is empty, no date will be assigned.
DATE_LANG Language code Add the language code for the language of your Todoist app to set the date (e.g., en for English, fr for French).
TIMEZONE Time zone Add the time zone that's set for your Todoist account (e.g., US/Eastern). Leaving this cell empty will have Todoist automatically detect your time zone.
DURATION Number Add the estimated number of minutes it takes to work on a task. Leave empty to not add a task duration.
DURATION UNIT minute or None Specify the unit of measurement for the task duration. If there's no task duration, None will appear in this cell.
meta view_style=board Import the template in board layout.
DEADLINE date Add a deadline to this cell. If left empty, no deadline will be assigned to the task.
DEADLINE_LANG Language code Add the language code for the language of your Todoist app to set the deadline date.

Language Codes

  • cs: Czech
  • da: Danish
  • de: German
  • en: English
  • es: Spanish
  • fi: Finnish
  • fr: French
  • it: Italian
  • ja: Japanese
  • ko: Korean
  • nb: Norwegian
  • nl: Dutch
  • pl: Polish
  • pt_BR: Brazilian Portuguese
  • ru: Russian
  • sv: Swedish
  • zh_CN: Simplified Chinese
  • zh_TW: Traditional Chinese

About

A simple script that will take your Omnifocus export and create importable CSVs for Todoist projects

Resources

Stars

4 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages