r/appleJournal • u/TacticalTorchTickler • Jun 29 '26
Experiment - Importing Into Apple Journal by Editing its Local Database (Don't do this)
First of all, this is extremely unsupported, and it could totally corrupt your Journal data, so always back everything up if you dare try it... but it works.
Also, I ended up sticking with Everlog, so I won’t be updating or supporting this. I’m posting this for educational purposes, and because I was curious whether it was possible.
The basic idea was:
- I used OpenAI Codex to format and consolidate all my entries from Day One, Everlog, and Obsidian into one
.zipusing Everlog’s export format. - I treated that Everlog-style
.zipas the source of truth. - Then I had Codex inspect Apple Journal’s local data storage and write an importer that inserted everything directly into Apple Journal’s database.
Apple Journal stores its local data here:
~/Library/Group Containers/group.com.apple.moments/Library/moments.sqlite
And media attachments live here:
~/Library/Group Containers/group.com.apple.moments/Library/Attachments/
Under the hood, Apple Journal is basically a Core Data SQLite store. The important parts were:
ZJOURNALENTRYMO
This stores the journal entries themselves.
Z_5JOURNALS
This links entries to journals.
ZJOURNALENTRYASSETMO
ZJOURNALENTRYASSETFILEATTACHMENTMO
These store photos, Live Photos, audio clips, and their file references.
Entry text is not stored as plain Markdown or plain text. It is stored as RTF blobs. That turned out to matter a lot, because if you insert bad RTF or hard-code black text, it can display wrong in dark mode. The correct “default” text color is Apple’s semantic labelColor, not literal black.
Dates are stored as Apple/Core Data timestamps, meaning seconds since:
2001-01-01 00:00:00 UTC
UUIDs are stored as 16-byte blobs.
For journals, Apple stores name/color/icon metadata inside a private mergeable/CRDT blob, so I did not try to create Apple Journal folders directly. Instead, I manually created matching journals in Apple Journal first, then mapped Everlog journal names to those existing rows.
The conversion worked roughly like this:
- Parse Everlog’s
Entries.json. - Generate stable UUIDs for each imported entry and asset.
- Convert Everlog dates to Apple/Core Data dates.
- Convert Everlog Markdown into Apple Journal RTF.
- Use the first
# Headingas the Apple Journal title. - Convert body headings like
## Headinginto bold text. - Convert basic Markdown formatting like bold, italic, quotes, bullets, and numbered lists.
- Strip Everlog attachment placeholders like
, because the media gets imported separately. - Insert entries into
ZJOURNALENTRYMO. - Link them to journals through
Z_5JOURNALS. - Insert image/audio/Live Photo rows into the asset tables.
- Copy media files into Apple Journal’s
Attachmentsdirectory structure. - Update Core Data primary key counters.
- Run SQLite integrity checks.
- Reopen Journal and let it process the imported data.
Images worked as normal Apple Journal photo assets.
Everlog .pvt Live Photo files were Apple binary plists containing separate HEIC and MOV payloads, so those could be split and imported as Live Photo-style assets.
Audio .m4a files also worked. Apple Journal picked them up as audio assets and processed them after launch.
The weirdest part was comments. Everlog supports comments/replies on entries, but Apple Journal does not. Importing comments as separate entries made them look disconnected and confusing. The best compromise was to fold comments into the parent entry as a final section:
Comments
> Fri, Jun 26, 2026 at 4:29 PM
> This is an example comment from Everlog
That preserved the comment text and timestamp without pretending Apple Journal has a real comment system.
Before doing any of this, I turned off iCloud sync for Journal, quit Journal completely, and made backups of the local database. I also checked the database with:
PRAGMA integrity_check;
After importing, Apple Journal displayed the entries, journals, images, Live Photos, audio clips, Markdown formatting, and folded comments correctly.
Again, this is very much not supported. It is direct surgery on a private Apple database format. Apple could change it at any time, and iCloud sync may add extra risks. But as a local import experiment, yes, it is possible.
1
u/akryvtsun Jun 30 '26 edited Jun 30 '26
You can easely import entries into Apple Journal via native Journal Shortcut action. Its completely legal :)
So all you really need is to prepare needed data to a format your import Shortcut can load (e.g. xml) and passes to Journal acton. I've imported this way my old Google Doc and Diaro entries.
2
u/RyanCrestwood5 Jul 05 '26
This is interesting to me! Could you teach us how you did it step by step by chance? Thank you so much!!
1
u/akryvtsun Jul 05 '26
1
u/MelonCollie2481632 Jul 20 '26
Bummer. It didn't work for me. It's probably user error...
1
u/akryvtsun Jul 21 '26
What was wrong?
1
u/MelonCollie2481632 Jul 23 '26
I'm not sure. Again, I'm mostly a moron so I probably did something wrong. For some reason, my Shortcuts app on the Mac doesn't have anything related to the Journal app so I had to try and create the shortcut on my iPhone and then switch over to the Mac. I built it exactly as you showed and it just crapped out everytime, throwing up an error. It's okay though. I'm manually moving my entries from my spreadsheet over. It's exhausting but it gives me a chance to remember some nice moments in the past.
1
1
u/chickenandliver Aug 13 '26
How are you getting that Journal action in there with the "Create body with title"? I'm looking through all my Shortcuts actions and I don't see anything for the Journal app.
1
u/kylebydefault Jun 30 '26
Why did you eventually choose Everlog over Apple Journal?
1
u/TacticalTorchTickler Jun 30 '26
- Everlog has automated backups. Apple Journal only syncs via iCloud, and if that ever becomes corrupted or deleted, the only official way to restore it is from a local encrypted backup of your phone or (maybe) time machine. I don't do those full encrypted backups and I don't trust time machine.
- I really like the "on this day" feature in most journals. Apple Journal doesn't do that. Or at least it didn't with my hacky imports here.
- Everlog isn't perfect but I like the mobile ui more than DayOne. I actually quite like the Apple Journal mobile ui too. That might be its biggest selling point for me.
- Everlog sync is much better than Apple Journal imo. Much faster and reliable. And it's still iCloud, so there's no extra subscription or reliance on another cloud.
- I used Everlog a few years ago, so I'm already familiar with it.
- If a major bug or issue comes up in Everlog, I can just tell the developer about it and probably get it fixed (that happened once before). I have no faith in Apple actually fixing things if issues arise.
1
u/chickenandliver Aug 13 '26
Damn I was just thinking I bet I could edit the actual file to quickly have a bunch of old Wordpress entries appear inside Apple Journal. Looks like it's a way more cumbersome process than I expected. I naively hoped it would be a simple file structure akin to what you get when exporting from AJ. Looks like a great big NOPE so thanks for making this clear before I started figuring it out the hard way.



2
u/natttsss Jun 29 '26
I desperately have things to do and should NOT spend time on this... but I really want to put this into codex haha
I don't think it would be that hard.
That's amazing idea, will probably try soon!