

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.