Migrating from MacJournal to Day One

A long time ago you’ve written diaries in MacJournal but then switched into Day One as you started to be more on mobile. There was a time when you’ve tried migrating a journal from MacJournal but Day One’s Import MacJournal File command failed with an error like:

Unable to import file
The file did not contain a date for the entry.

“No sweat, I’ll just keep MacJournal around whenever I feel the need to read my old diaries,” you might thought to yourself. All was fine and dandy.

Then macOS 10.15 “Catalina” is coming around the corner. Despite all the new features and enhancements, it removed support for 32-bit applications. Unfortunately MacJournal 5 is still a 32-bit application. Hence the clock is ticking before “this fall” when your old diaries become inaccessible since MacJournal 5 stops working in the new operating system.

What if you can seamlessly access archived journals across all of your devices? What if you can confidently upgrade in Catalina’s “day one”? (pun intended).

Well, if your archived journals are in MacJournal 5 and your current journaling system is Day One, this article shows you how to migrate your data so that you can finally say goodbye to that 32-bit app and be ready for Catalina.

Mac journal to day one 2x

Migration Steps

In a nutshell, these are the steps needed to move a journal from MacJournal into Day One. If you have multiple journals, follow these steps with one journal at a time.

  1. Export the journal from MacJournal as a single file.
  2. Create a new journal in Day One, as a “staging area” for your entries.
  3. Install Day One’s Command Line Interface (CLI).
  4. Run the MacJournalToDayOne import script to create entries in Day One based on your exported file.
  5. Inspect the imported journal in Day One.


Before you begin, take note that this process and the import script was tested on the following software configuration. Make sure that you have these applications at hand or have a compatible alternative.

Exporting from MacJournal

This process would export a journal in MacJournal into a plain-text version that can be read by the import script later on.

Follow these steps to begin the export.

  1. In MacJournal, select a journal.
  2. Select command File|Export... from the main menu bar.
  3. Specify these as the export parameters:
    • File format is Text Format.
    • Metadata is Date & Topic
    • Encoding is Unicode (UTF-8)
    • Use One File Per Entry is unchecked (that is, export all entries in the journal as one file)
  4. Click on Export.

MacJournal export dialog

Creating a New Journal in Day One

This new journal would be used as the destination for entries imported from MacJournal. Having an empty journal created would be useful for inspection of the import results and maybe re-start the import if necessary.

  1. In the Day One app, select Day One|Preferences... from the main
  2. Within Day One’s Preferences dialog, click the Journals tab.
  3. Click the + button to create a new journal.
  4. Type in a new journal name — for example MacJournal Import — and then click Create Journal.
  5. Take note of this new journal name to be used in subsequent steps.

Installing Day One CLI

The Day One CLI is needed by the MacJournalToDayOne script to communicate with the Day One app and create entries in it. Follow the instruction in Day One’s site to install the tool. When done, open the Terminal app and run the following command to verify that it is installed correctly:

dayone2 --help

If you see the reference to use the CLI, then it is installed correctly. If you see a command not found error, then something went wrong and you probably should contact Day One’s support staff to get it installed.

Running the MacJournalToDayOne Script

The MacJournalToDayOne script would read the text file exported by MacJournal and create the corresponding entries in Day One. It works by going through the entries in the exported file, and calling the Day One CLI for each of those entries.

Follow these steps to download, install, and run the script.

  1. Go to the MacJournalToDayOne release page and download its latest stable release.

  2. Open Terminal to extract the archive:

    tar -xvf MacJournalToDayOne-1.0.0.tgz
  3. Still in Terminal, run the script extracted from the previous step, MacJournalToDayOne.py and provide it with the MacJournal export file and the destination journal name in Day One.

    ./MacJournalToDayOne.py "${export-file}" --journal="${journal-name}"

    From the example above, replace ${export-file} with name of the file that was exported from MacJournal and ${journal-name} with the name of the journal in Day One. Remember to enclose these with double quotation marks, especially if the names contains spaces. Be sure to use the new journal name as the target journal so that you can repeat the process in case anything went wrong.

The import process would probably take a few minutes if there are many entries inside the journal.

Inspect the Results

Launch Day One and randomly sample a few entries in the new journal to compare it with the ones exported from MacJournal. In case something is not right or went missing, you can delete these imported entries and start the process again.

This is the main reason why you should import into a temporary staging journal – so that the imported entries doesn’t get mixed with your existing ones until you are completely satisfied.

Next Steps

When you are satisfied with the imported entries in the staging journal, you can tag them, say for example add a “MacJournal” tag, to differentiate it with your newer entries. Then you can move them into your main journal and delete the staging journal afterwards.


Get articles like this sent to your inbox as soon as they are published.

* indicates required

Unsubscribe any time and we won't share your details with third parties.

Tags: , , , , , ,