Apple Notes → Journal Thino Memo
Process notes in Apple Notes/ directory and append their content to the corresponding daily journal files (journals/YYYY-MM-DD.md) in Thino Memo format.
Script Location
/Users/zhaoliang/LocalDocuments/vaults/vault/resources/scripts/apple_notes_to_journal.py
How It Works
For each .md file in Apple Notes/ (excluding the exported to obsidian/ subdirectory):
- Reads the file's birthtime (creation time) via
os.stat().st_birthtime— Apple Notes have no frontmatter, so file creation time is the source of truth for date/time - Strips the
#heading prefix from the first line if present - Groups notes by date and sorts within each date by time
- Appends to
journals/YYYY-MM-DD.mdusing the Thino Memo format:- Single line:
- HH:MM YYYYMMDD content - Multi-line:
- HH:MM\n\tYYYYMMDD line1\n\tline2
- Single line:
- Skips entries already present in the target journal (dedup by
time + first 30 chars)
Default Workflow
- Always preview first with
--dry-runand review the summary count - Run with
--applyto actually write changes - Original Apple Notes files are not modified or moved
Commands
Preview all changes
python3 /Users/zhaoliang/LocalDocuments/vaults/vault/resources/scripts/apple_notes_to_journal.py --dry-run
Apply all changes
python3 /Users/zhaoliang/LocalDocuments/vaults/vault/resources/scripts/apple_notes_to_journal.py --apply
Filter by date
python3 /Users/zhaoliang/LocalDocuments/vaults/vault/resources/scripts/apple_notes_to_journal.py --apply --date 2026-04-30
Custom vault path (rare)
python3 .../apple_notes_to_journal.py --apply --vault-path /path/to/other/vault
Behavior Guarantees
- Idempotent: Re-running won't duplicate entries — dedup uses
HH:MM + first 30 chars of contentas signature - Non-destructive to existing journals: New entries are appended at the end of the file. Existing Thino Memos are preserved unchanged.
- Non-destructive to Apple Notes: Original notes stay in place
When to Run
- After exporting new notes from Apple Notes to the Obsidian vault
- When the
Apple Notes/directory has untracked.mdfiles (git statusshows??) - When user explicitly asks to sync notes to journals
After Running
Report to the user:
- How many notes were processed
- How many journals were updated
- How many duplicates were skipped (if any)
Do NOT auto-commit the changes — let the user review and commit themselves.