Turning a Google Docs Journal Into Dated Entries

2026-10-18 · Yesterself

If you have kept a journal in one Google Doc for years, you know the shape of the problem. It is a single file, hundreds of pages long, scrolling slowly, with a date somewhere near the top of each entry. It works well enough to write into and badly for everything else. You cannot see what you wrote on a given day without hunting, and you cannot move it anywhere useful.

The goal here is narrow and concrete: end up with one plain text file per day, named by date, containing exactly what you wrote that day. Everything below is in service of that.

Step one: get it out of Google Docs as text

Do not try to split anything inside the browser. Get a local copy first.

Open the document and choose File, then Download. You have three useful options:

Make a second copy of the export before you touch it. The work below is destructive in the sense that you will be cutting a file apart, and an untouched original makes every mistake recoverable.

Step two: inventory your date formats before you split anything

This is the step people skip, and it is the reason the split usually fails.

Nobody writes a date the same way for five years. You started with March 4, 2019. Then you got faster and wrote 3/4/19. Then you moved to a phone for a while and wrote Mon 4 Mar. Then at some point you started writing 2021-11-08 because you had learned that sorts properly. Somewhere in the middle there is a stretch of entries headed only Tuesday because you knew what week it was.

So before splitting, find out what you are actually dealing with. Search the document for the separators you are likely to have used: a slash, a comma followed by a year, the word January, the abbreviation Jan, a hyphen between digits. Scroll through a few pages from each year of the journal — the format usually changed at moments when your life changed, so the boundaries tend to fall on job changes and moves.

Write down the variants you find, with the rough date range each one covers. Five minutes of this makes the rest mechanical.

Normalize first, split second

The trick that makes this manageable: do not try to split on many patterns at once. Instead make one editing pass that rewrites every date variant into a single canonical form, then split on that one form.

Pick something that cannot occur naturally in your prose. A line consisting of three equals signs, then the ISO date, works well:

=== 2019-03-04

In a text editor with find and replace across a whole file — most editors have it, and it will accept patterns — you handle one format per pass. Convert all the slash dates. Then all the "Month Day, Year" dates. Then the ISO ones you already had. After each pass, search for what is left of the old format and confirm the count is zero.

Two ambiguities to settle before you convert anything:

  1. Slash dates. Is 3/4/19 the fourth of March or the third of April? You know which convention you used, but confirm it against an entry whose content you can date some other way — a birthday, a trip, a news event you mentioned.
  2. Two-digit years. Decide the century once, and check the edges. An entry marked 1/2/00 is easy to send to the wrong decade.

For the bare Tuesday entries and any other headless stretches, do not guess. Walk that section in order and fill the dates in by hand, using the dated entries on either side as fenceposts. If a stretch is genuinely unrecoverable, mark it with an approximate date and note in the entry itself that the date is approximate. An honest approximation is much better than a confident wrong date you will believe later.

Step three: split into one file per day

With every entry now headed by an identical marker line, the split is simple. Two ways to do it:

By hand, if you have a few dozen entries. Open the export, select from one marker to the next, cut, paste into a new file, save with the date as the filename. Tedious, but there is no setup and no surprise.

With a text editor or a small script, if you have hundreds. Many editors can split a file on a pattern. On macOS or Linux, the standard command line tools that split a stream at a matching line will do it in one invocation, and you then rename the numbered output files using the date on their first line. If you are not comfortable writing that, describing the marker line and the desired filename to any coding assistant is a reasonable way to get a five-line script you can read and verify.

Name the files with the ISO date and nothing else: 2019-03-04.md. Four-digit year first, zero-padded month, zero-padded day. This is the single most valuable decision in the whole process, because it makes the folder sort chronologically everywhere, forever, with no metadata required.

Yesterself is the journal that writes back. Every morning it sends you a letter from your own past writing, and your reply becomes tomorrow's. End-to-end encrypted, no account, no email — your archive is yours to export, free, forever.

Join the waiting list

Handle the two edge cases deliberately:

Step four: verify before you delete anything

Three checks, in order:

  1. Count. How many marker lines were in the normalized file? How many files came out? Those numbers should match exactly. If they do not, the difference is almost always a marker that got mangled during normalization.
  2. Spot-check the boundaries. Open five files at random and read the last paragraph. If an entry ends mid-sentence, your split pattern is catching something it should not.
  3. Size. Compare the total size of the folder against the original export. It should be close. A large shortfall means a chunk went missing.

Only after all three pass should you archive the original — and even then, archive it rather than delete it. It costs nothing to keep.

What you have at the end

A folder of dated plain text files is a genuinely good place for a journal to live. It opens on any computer, it needs no subscription, it survives every app you will use in the next twenty years, and it is the format nearly everything else can import. If you are moving on to a dedicated app, this is the shape most of them want. If you are moving from somewhere else too, the same normalize-then-split logic applies — see the notes on exporting a Notion journal and getting a journal out of Evernote.

Yesterself is a journal built on the idea that old entries should come back to you rather than sit in a drawer: each morning it delivers one letter drawn from your own past writing, and your evening reply becomes tomorrow's mail. It is end-to-end encrypted, with no account, no email and no password — your identity is twelve words you hold. Export is free forever, in open formats, on every tier, because an archive you cannot get out of is not really yours. It is not released yet; there is a waiting list on the site.

Whatever you do next with the files, the split itself was worth doing. A journal you can search by date is a different object from a journal you can only scroll.

Common questions

How do I export my Google Docs journal first?

Open the document, choose File, then Download, then Markdown or Plain Text. Markdown keeps your headings as hash marks, which is what the splitting step looks for.

What if my date headings are inconsistent?

Normalize before you split. Make one pass that rewrites every date variant you used into a single format, then split on that one pattern.

What do I name the resulting files?

Use the ISO form, four digit year, then month, then day, like 2019-04-07. Files then sort chronologically in any file manager or app.

What about text that sits above the first date?

Keep it. Put it in a file named something like 0000-preface so it sorts first and nothing is lost.

Do I need to do this all at once?

No. Split the years you can identify confidently, and leave the ambiguous stretch in a single leftover file to sort out later.