Convert a Day One JSON export into individual entries for Obsidian. Each entry is created as a separate page.
This repository is no longer being monitored. The code remains available for the use of others, but no support will be given.
- Python 3.x
- pytz (pip install pytz) for timezone functions
- Possible Visual Studio Code as your IDE. People have reported issues using another IDE. I don't know the specifics but think its most likely the need to match properly the version of Python and libraries you are using when running code within the IDE itself.
- Obsidian Icons Plugin to display calendar marker at start of page heading
This script works with version 5.9.1 (1250) of Day One. It has not been tested with any other versions.
DO NOT do this in your current vault. Create a new vault for the purpose of testing. You are responsible for ensuring against data loss This script deletes folders if run a second time This script renames files
- Export your journal from Day One in JSON format
- Expand that zip file
- Adjust the root variable to point to the location where your zip file was expanded and Journal.json exists. You should also have a photos folder here if there were photos in your journal
- If you not are using the Icons Plugin to display calendar marker at start of page heading set icons = False
- Run the script
- Check results in Obsidian
- If happy, move all the journal and photos folders to whatever vault you want them in.
- Processes all entries, including any blank ones you may have.
- Entries organised by year/month/day
- If multiple entries on a day, each additional entry is treated seperately
- Adds metadata for whatever exists at bottom of file
- minimum date and timezone
- Location as text, linked to a page
- Tags and starred flag as tag
- Every entry has the date inserted in the text for easier reading (with a calendar icon to help you quickly distinguish from other entries in your vault)
- If location is specified, it is given under the date, linked to Google Search
- Tags can be prefixed (default = journal/) to show as subtags in Obsidian separate from other note tags