How to Name Your Note Files So You Can Still Find Them in 20 Years
Name dated notes YYYY-MM-DD-slug.md so they sort themselves, and give permanent notes a 12-digit YYYYMMDDhhmm ID that never changes. Use only letters, numbers, dashes, and underscores — never spaces — and front-load the words you would search on. The filename is the cheapest, most portable index your notes will ever have.
Picture the test that matters: it is twenty years from now, the app you write in no longer exists, and you open a folder of .md files on whatever computer you own then. There is no search box that understands your old tags. There is no graph view. There is only a list of filenames. What tells you what each note is? The name. Everything else — the database, the index, the plugin that rendered your links — is gone. The filename is what is left.
This is a how-to, not a manifesto. By the end you will have one convention you can paste into your own folder today, the reasoning behind each rule grounded in a documented standard, and an honest account of what good names do and do not do.
The conventions here come from places forced to think hard about durable names: international standards bodies, university data-management offices, and the Zettelkasten practitioners who have given every note a permanent ID since long before software did it for them.
What is the best way to name note files?
The best convention has three parts. Date-based notes start with an ISO 8601 date, YYYY-MM-DD-slug.md, so the filesystem sorts them in chronological order with no extra effort. Permanent atomic notes get a 12-digit timestamp ID, YYYYMMDDhhmm, that never changes. Both use only letters, numbers, dashes, and underscores — no spaces, no special characters — with the searchable words placed first.
That single line carries the whole post. The rest explains why each piece is shaped the way it is, because a convention you understand is one you will keep — and the only convention worth having is the one you keep.
The two formats answer two different needs. The dated name answers "when did I write this," which is how you find journals, meeting notes, and logs. The timestamp ID answers "which exact note is this," which is how you address one idea among thousands without that address ever moving.
Both formats agree on the boring rules that make a filename safe to carry across machines: no spaces, a small alphabet of characters, a sensible length, and the important words at the front. Those rules are the part everyone skips and the part that breaks first.
Why the filename is the index that survives
A filename is the one piece of metadata you are guaranteed to keep. Tags live in an app's database. Properties live in a frontmatter convention the next app may not parse. The graph lives in a plugin. The filename lives in the file itself — copied by every backup, read by every operating system, still there when the app is gone.
Steph Ango, the CEO of Obsidian, named this idea precisely. "File over app is a philosophy: if you want to create digital artifacts that last, they must be files you can control, in formats that are easy to retrieve and read."1 His one-line version is the whole argument: "Apps are ephemeral, but your files have a chance to last."1 A filename is the most file-bound metadata there is. It travels with the file or it does not travel at all.
This is why the convention is worth the small effort it costs. You are not naming files for the app you use this year. You are naming them for the reader who opens the folder with no app at all — a future version of you, or whoever inherits the archive. That reader has one tool: the ability to read a list of names. Write for them.
The single rule: put the searchable words first
Front-load the filename with the words you will actually look for. A name is read left to right, sorted left to right, and cut off from the right when a list gets cramped. Whatever sits first is what you see and sort by — so the first characters should be the date or the topic you will search for, never filler.
Harvard Medical School's data-management guide states the goal plainly: "The file name should be descriptive and provide just enough contextual information."2 The emphasis sits on just enough. A name is not a summary; it is a hook. It needs the one or two words that pull the right file out of a list of a thousand, and no more.
The same guide gives the reason names matter at all: "If the file is moved or shared, users will be able to identify the file from its file name."2 Moved or shared — that is the durability test again, written by people who manage research archives meant to outlive grant cycles.
In practice this means a meeting note is 2026-06-16-acme-pricing-call.md, not Notes from the call.md. The date sorts it; "acme" and "pricing" are what you will type into search in two years. The word "notes" earns nothing — every file is a note.
The five-minute version: a convention you can paste in today
Here is the whole convention in seven steps, and none of it needs a plugin or an app. Choose a format by note type, lead with the sort key, add a searchable slug, use a safe alphabet, keep it short, zero-pad numbers, and never edit the ID. Apply this and the folder sorts itself from the first file you name.
- Pick the format by note type. Dated note (journal, meeting, log) →
YYYY-MM-DD-slug.md. Permanent atomic note (one idea you will link to) →YYYYMMDDhhmm-slug.md. - Lead with the sort key. The date or the timestamp goes first so the filesystem orders the folder for you.
- Add a short, lowercase slug of the two or three words you would search for:
acme-pricing-call,spaced-repetition,kant-on-duty. - Use only
a–z,0–9,-, and_. No spaces, no/ \ : * ? " < > |, no accented characters. These are the characters every filesystem agrees on. - Keep it short. Aim for a name under roughly 50 characters total; the slug carries meaning, the full sentence goes inside the note.
- Zero-pad any numbers you use for ordering:
01,02, …10, not1,2, …10. - Never rename the ID part. The date or timestamp is permanent; you may edit the slug freely.
A finished folder then looks like this, and sorts itself the moment you open it:
202606160955-spaced-repetition-vs-massed-practice.md
202606161420-the-filename-is-the-index.md
2026-06-16-acme-pricing-call.md
2026-06-17-weekly-review.md
2026-06-18-standup.md
Why YYYY-MM-DD sorts itself
Write the date big-endian — year, then month, then day, each zero-padded — and the filesystem sorts your notes in time order with no effort from you. This is not a quirk; it is the entire reason the international date standard is shaped this way. The order you read the characters in is the order time runs in.
The ISO 8601 standard makes the guarantee explicit: "The lexicographical order of the representation thus corresponds to chronological order ... This allows dates to be naturally sorted by, for example, file systems."3 Lexicographical order is just alphabetical order applied to digits — exactly how every file browser sorts a folder by name. Because 2026 comes before 2027, and within a year 01 before 02, a plain alphabetical sort and a calendar are the same sort. Library Carpentry, the research-training curriculum, gives the same instruction in one line: "The preferred format for dates: YYYY-MM-DD."4
The catch is zero-padding, and it is where most homegrown schemes fail. 2026-6-1 and 2026-12-1 sort wrong because 12 is alphabetically less than 6. Pad every field — 2026-06-01, 2026-12-01 — and the order is correct forever. The standard works only if you respect its widths.
The timestamp ID: a name that never moves
For permanent notes you will link to, give each one a 12-digit timestamp — YYYYMMDDhhmm — and treat it as the note's address for life. The slug after it can change as your understanding of the note changes; the digits cannot. A stable address is what lets you reorganize, retitle, and rewrite a note without ever breaking a reference to it.
This is the oldest idea in the post, and it is not a software idea. Starting in 1952–1953, the sociologist Niklas Luhmann built a paper Zettelkasten of some 90,000 index cards and linked them by giving each card a unique index number based on a branching hierarchy.5 The number, not the title, was the card's identity.
The digital convention codified at zettelkasten.de by Sascha Fast and Christian Tietze keeps that principle and swaps the branching number for a timestamp: "The unique identifier (ID) is mandatory to create a Zettelkasten. Only with a unique identifier you can address Zettel individually."6 Their worked example is exactly twelve digits: "A sample time-based ID would be: 202006110955."6
The payoff is the part worth memorizing. Because the ID is fixed, "it never changes, so you can change the title as much as you want without breaking any links."6 The timestamp is the seam between what a note is called and how a note is found — and keeping those two things separate is the whole trick.
Why 12 digits, and not more or fewer
Twelve digits — year, month, day, hour, minute — is the sweet spot most practitioners settle on. It is short enough to type, long enough to be unique in normal use, and obvious enough that you never have to think about it. Fewer digits collide; more digits add precision you will never need and a name you cannot read.
A practitioner on the Zettelkasten forum, micahredding, put the trade-off well in 2019: "For me, 12-digit timestamps are still the best option. They're just short enough to be workable, just precise enough to be unique, and obvious enough to avoid fiddling too much trying to figure it out."7 The "unique in normal use" caveat is real: if you create two notes in the same minute, append a letter or second — 202606160955a — and move on. Do not redesign the scheme to prevent a collision you will hit once a year.
The reason the ID doubles as a link target is that it never needs editing. Many practitioners reference the timestamp itself between notes, so the name and the cross-reference are one and the same — which is why a convention that prevents renames also prevents broken links.
The links between your notes are a separate, deeper problem with its own failure modes, covered in why the links between your notes aren't plain Markdown. A stable filename convention is the cheapest prevention for the most common way those links break: the rename.
Common mistakes
Most naming failures are not exotic. They are the same five errors, made by nearly everyone, that quietly turn a clean folder into a pile you cannot sort: spaces in names, unpadded numbers, dates in the wrong order, names that try to be summaries, and editing the part of the name other notes point to. Each has a documented fix.
- Spaces in filenames. Harvard's guide is blunt: "Many computer systems cannot handle spaces in file names, so do not use spaces!"8 Spaces break command-line tools, mangle URLs, and force quoting everywhere. Use
-or_instead — pick one and stay consistent. - Unpadded numbers. "1, 2, ... 10, 11" sorts as "1, 10, 11, 2." The fix, in HMS's words: "When using a sequential numbering system, use leading zeros for clarity and ensure files sort in sequential order."9 Use
001,002,010. - Little-endian dates.
06-16-2026or16-06-2026sorts by month or day, scattering years. OnlyYYYY-MM-DDsorts chronologically (see the ISO 8601 rule above). - Names that are summaries. A 90-character title belongs inside the note. HMS recommends names of "40-50 characters" using "only ... alphanumeric characters, dashes, underscores."10 Keep the meaning in the body; keep the hook in the name.
- Editing the sort key. Changing the date or timestamp at the front of a name breaks every reference to it and re-sorts the folder. Edit the slug, never the ID.
How this works with plain files
The convention pays off most when your notes are plain Markdown files you own outright. The filename is then not a label the app pretends to show you — it is the real, editable name of an actual file on your device. No hidden database row, no opaque internal ID stands between you and the note.
This is the practical difference between a folder and a silo. In some tools, a page is a database row with a hidden identifier you never see or control. On export, that tool may append a long machine hash to each file, so the durable identifier turns out to be a string you did not pick and cannot read.
With plain files, the durable identifier is the name you wrote on purpose. This is the case for keeping notes as local-first Markdown files whose names you control rather than rows in someone else's table. The convention in this post is what makes that ownership pay off: a name you chose, that sorts itself, and that still means something in a folder with no app around it.
The honest caveat: names don't replace search
A good naming convention does not make search obsolete, and pretending otherwise is the fastest way to overbuild. Apps index full text and frontmatter, so most days you find a note by typing a word from inside it. Search reduces the need for a perfect name — but the filename is the cheapest, most portable index that survives the app.
So do not turn naming into a second job. The ID and a two-or-three-word slug are enough; the body of the note carries everything else, where search can reach it.
The macro-index — a hand-written home note that links to your important notes — does the heavy lifting of finding things while you still have an app, as one good index note beats a graph view argues. The filename is the micro-index underneath it: the last line of defense, written for the day none of the convenience layers exist.
That durability is the same thesis applied at the file level that version history you own and the attachment problem in portable Markdown apply to history and to images. Own the file, and you own the metadata that names it.
Frequently asked questions
What is the best file naming convention for notes?
Lead dated notes with an ISO 8601 date — YYYY-MM-DD-slug.md — so they sort chronologically, and give permanent notes a 12-digit YYYYMMDDhhmm ID that never changes. Use only letters, numbers, dashes, and underscores, no spaces, and put the words you will search for first. Keep the full name under about 50 characters.
Does YYYY-MM-DD actually sort chronologically?
Yes, by construction. ISO 8601 states that "the lexicographical order of the representation ... corresponds to chronological order," which lets dates be "naturally sorted by ... file systems."3 Alphabetical sorting of zero-padded big-endian dates is identical to calendar order. It only works if you pad every field: write 2026-06-01, never 2026-6-1.
Should I use spaces in file names?
No. Harvard Medical School's data-management guide warns that "many computer systems cannot handle spaces in file names, so do not use spaces!"8 Spaces break command-line tools and URLs and force quoting everywhere. Use a dash or an underscore instead, and pick one of the two to use consistently.
What is the Zettelkasten ID format?
A 12-digit timestamp: YYYYMMDDhhmm. The zettelkasten.de guide gives the example "202006110955" — year 2020, 11 June, 9:55.6 It descends from Luhmann's practice of giving each paper card a unique index number.5 The ID is the note's permanent address; because "it never changes," you can retitle the note "without breaking any links."6
How long should a note filename be?
Short. Harvard's guide recommends roughly "40-50 characters" using "only ... alphanumeric characters, dashes, underscores."10 The name is a hook, not a summary — it needs the date or ID plus two or three searchable words. Everything else belongs in the body of the note, where full-text search can find it.
Do I still need a naming convention if my app has search?
Search reduces the need but does not remove it. Full-text search finds notes by their contents while the app exists; the filename is the index that survives when the app and its search index are gone. Treat the name as the cheapest, most portable fallback — not as a replacement for search or for a hand-written index note.
The app you write in today will not be the one you read your notes in twenty years from now. The filename is the message you leave for the reader who opens the folder after the app is gone — so make it one they can read.
This post stands on conventions other people earned: the ISO 8601 date standard, Harvard Medical School's and Library Carpentry's data-management guidance, and the Zettelkasten ID practice traced from Niklas Luhmann to the digital codification at zettelkasten.de by Sascha Fast and Christian Tietze.
If you want to try a clean convention on real files, MNMNOTE keeps your notes as local-first Markdown whose names you choose and control.
Footnotes
-
Steph Ango, "File over app," stephango.com, https://stephango.com/file-over-app, retrieved 2026-06-16. ↩ ↩2
-
"File Naming Conventions," Harvard Medical School Data Management, https://datamanagement.hms.harvard.edu/plan-design/file-naming-conventions (archived: http://web.archive.org/web/20260521022330/https://datamanagement.hms.harvard.edu/plan-design/file-naming-conventions), retrieved 2026-06-16. ↩ ↩2
-
"ISO 8601," Wikipedia (summarizing the ISO 8601 standard), https://en.wikipedia.org/wiki/ISO_8601, retrieved 2026-06-16. ↩ ↩2
-
"Workshop Overview: File naming & formatting," Library Carpentry, https://librarycarpentry.github.io/lc-overview/06-file-naming-formatting.html, retrieved 2026-06-16. ↩
-
"Zettelkasten," Wikipedia, https://en.wikipedia.org/wiki/Zettelkasten, retrieved 2026-06-16. ↩ ↩2
-
Sascha Fast and Christian Tietze, "Introduction to the Zettelkasten Method," zettelkasten.de, https://zettelkasten.de/introduction/, retrieved 2026-06-16. ↩ ↩2 ↩3 ↩4 ↩5
-
micahredding, "Zettel ID and General Unique Identifiers," Zettelkasten Forum, May 2019, https://forum.zettelkasten.de/discussion/613/zettel-id-and-general-unique-identifiers, retrieved 2026-06-16. ↩
-
"File Naming Conventions" (no-spaces rule), Harvard Medical School Data Management, https://datamanagement.hms.harvard.edu/plan-design/file-naming-conventions, retrieved 2026-06-16. ↩ ↩2
-
"File Naming Conventions" (sequential-numbering rule), Harvard Medical School Data Management, https://datamanagement.hms.harvard.edu/plan-design/file-naming-conventions, retrieved 2026-06-16. ↩
-
"File Naming Conventions" (length and allowed-character rule), Harvard Medical School Data Management, https://datamanagement.hms.harvard.edu/plan-design/file-naming-conventions, retrieved 2026-06-16. ↩ ↩2