Harbor

Blog ·August 30, 2026 ·Cloudmanic Labs

What is an ENEX file? Evernote's export format, explained

Illustration for “What is an ENEX file? Evernote's export format, explained”

If you have exported anything out of Evernote, you have an .enex file sitting in your downloads folder, and it is probably not obvious what to do with it. Double-clicking does nothing useful. It may be enormous. And the one thing you actually want — to read your notes — is the thing it refuses to do.

Here is what is actually inside one, based on real exports and the current published specification.

ENEX is Evernote’s export format

ENEX stands for Evernote Export. It is a plain XML file, and it is the only format Evernote’s export function produces. Every notes app that offers “import from Evernote” is reading this file.

The format is public. Evernote publishes a document type definition at xml.evernote.com/pub/evernote-export3.dtd, and a version 4 now sits alongside it — recent exports declare evernote-export4.dtd in their header. That published spec is why the format outlived so much else about Evernote: anyone can write an importer without permission.

Last checked: August 30, 2026. We re-read the published DTD and opened real exports produced by Evernote 11.21.5 while writing this.

What is inside the file

Strip away the attachments and an ENEX file is simple. One <en-export> wrapper holds a list of <note> elements, and each note carries:

  • <title> — the note title, as plain text.
  • <content> — the note body, wrapped in CDATA.
  • <created> and <updated> — timestamps.
  • <tag> — one element per tag, repeated.
  • <note-attributes> — everything else about the note.
  • <resource> — one per attachment.

The header records when and what produced the file:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE en-export SYSTEM "http://xml.evernote.com/pub/evernote-export4.dtd">
<en-export export-date="20260623T190617Z" application="Evernote" version="11.21.5">

Dates use a fixed ISO 8601 profile, always in UTC: yyyymmddThhmmssZ. So 20260623T190504Z is 19:05:04 UTC on 23 June 2026. There are no time zones and no local times anywhere in the format — if a note’s timestamp looks a few hours off after an import, this is usually why.

The note body is ENML, not HTML

The <content> element does not hold plain text. It holds a complete second XML document, wrapped in CDATA so the outer file does not choke on it:

<content>
  <![CDATA[<?xml version="1.0" encoding="UTF-8"?>
  <!DOCTYPE en-note SYSTEM "http://xml.evernote.com/pub/enml2.dtd">
  <en-note>Your note lives in here.</en-note>]]>
</content>

That inner format is ENML — Evernote Markup Language, a restricted dialect of XHTML with its own DTD. People mix the two names up constantly: ENEX is the container holding many notes; ENML is the markup for one note’s body.

ENML is close enough to HTML that converting it is easy, which is why ENEX-to-Markdown tools work at all. It has a few elements of its own, the important one being <en-media>, which is how a note points at an attachment.

Real exports also carry a fair amount of Evernote’s own housekeeping in the body — hidden <div> elements holding base64-encoded style configuration, for instance. It is inert, but it is one reason imported notes sometimes arrive with odd empty blocks.

Attachments are embedded, not linked

Every attachment becomes a <resource> element, and the file itself is base64-encoded directly into the XML:

<resource>
  <data encoding="base64">iVBORw0KGgoAAAANSUhEUg...</data>
  <mime>application/pdf</mime>
  <resource-attributes>
    <file-name>invoice.pdf</file-name>
  </resource-attributes>
</resource>

This is the single most important thing to understand about ENEX, because it explains the file sizes. Base64 encoding adds roughly 33% overhead, and every PDF, photo and scan in the notebook is carried inline. One real export we opened while writing this held 37 notes and 79 attachments and came to just over 50 MB — the notes themselves were a rounding error in that total.

Resources also carry <width>, <height>, <duration> for audio and video, and a <recognition> element holding Evernote’s OCR layer — the text it extracted from your scans. Most importers ignore that recognition data and re-run OCR themselves.

The attributes people forget about

<note-attributes> is where a surprising amount lives, and it is worth knowing because it is often the part that quietly does not survive an import:

  • <source-url> — for web clips, the page you clipped. This is the field that makes an archive of clipped articles still useful years later.
  • <latitude>, <longitude>, <altitude>, <place-name> — where the note was created.
  • <author>, <source>, <source-application> — what made the note.
  • <subject-date> — for scans, when the original document is from, as opposed to when you scanned it.
  • <reminder-order>, <reminder-time>, <reminder-done-time> — reminder state.

How to open an ENEX file

To look at it: any text editor. It is XML, so it opens in anything. Be careful with a large export — a 50 MB file full of base64 will make most editors struggle, and you will be scrolling past megabytes of encoded PDF to find the next note.

To read it as notes: import it into a notes app. ENEX is widely supported — Harbor, Joplin, Notion, Apple Notes and Obsidian (through a plugin) all read it. There is no official standalone ENEX viewer, which is a genuine gap in the ecosystem.

To convert it: the note bodies are XHTML, so once the notes are split apart, any HTML-to-Markdown converter handles the text. Attachments are the harder half — each one has to be base64-decoded and written out as a real file, with the <en-media> references rewritten to point at it. This is why simple converters often produce notes with all the images missing.

The four things ENEX does not carry

This is the part worth knowing before you plan a migration, because no importer can recover data the format never stored. If a tool claims otherwise, it is guessing.

1. Notebook names and stacks. This is the one that catches everyone. Look through the DTD and there is no notebook element at all. Evernote exports one .enex per notebook and puts the notebook name in the filename — nothing inside the file records it. Since a stack is a grouping of notebooks and notebooks themselves are not represented, stacks cannot survive. Rename an export file before importing and you have renamed the notebook.

2. Tag hierarchy. Tags are exported as a flat list of <tag> elements per note. If you had nested tags, the tags all come across but the nesting does not — there is nowhere in the format to record a parent.

3. Note-to-note links. Evernote writes internal links as evernote:/// URLs pointing at its own database. They survive the export as text, but they point at nothing outside Evernote. Any app importing them gets a dead link.

4. Note history. An export is a snapshot of each note as it is now. Previous versions are not included, so version history starts fresh wherever you land.

Saved searches and shared-notebook permissions do not travel either.

What this means if you are leaving Evernote

The practical version: your notes, tags, attachments, timestamps and web-clip URLs are safe. They are all in the file, in a documented format, and any competent importer will bring them across.

What you will rebuild by hand is organisation — stacks and nested tags — and you will lose internal links and history. For most libraries that is twenty minutes of dragging notebooks back into groups.

Two things worth doing before you export:

  • Export by notebook, not by selecting notes. Selecting notes caps you at 100 at a time; exporting a whole notebook has no such limit. Our complete guide to exporting Evernote notes covers the workarounds, including the free command-line tool that exports an entire account in one run.
  • Keep the filenames. They are your notebook names. Renaming them after export loses the only record of where the notes came from.

Harbor reads ENEX directly — notebooks, tags, checklists, attachments, original dates and web clips with their source URLs — and then runs OCR across your scans so the text inside them becomes searchable. What carries over, in detail, and the honest list of what ENEX cannot bring.

If you are still deciding where to go, we keep a comparison of the main Evernote alternatives — Harbor is one of them, disclosed as ours, and it does not win every row. And if the reason you are exporting at all is the price, we traced every Evernote price change back to 2016.


Sources: Evernote’s published export DTD at xml.evernote.com/pub/evernote-export3.dtd and the version 4 document referenced by current exports, both read on August 30, 2026; structural details confirmed against real .enex files produced by Evernote 11.21.5.

Frequently asked questions

What is an ENEX file?
ENEX stands for Evernote Export. It is an XML file holding one or more notes — their titles, text, dates, tags and embedded attachments — and it is the format other notes apps read when they offer an Evernote import.
How do I open an ENEX file?
Any text editor will open it, because it is plain XML. To read it as notes rather than markup, import it into a notes app — Harbor, Joplin, Obsidian (via plugin), Notion and Apple Notes all read ENEX. There is no official standalone ENEX viewer.
Why is my ENEX file so big?
Attachments are embedded directly in the XML as base64 text, which is about 33% larger than the original file. A notebook with scanned PDFs and photos can produce an export many times the size of the notes themselves.
Does an ENEX file contain my notebook name?
No — and this surprises people. The notebook name is only the filename. Nothing inside the file records which notebook the notes came from, which is why notebook stacks cannot survive an export.
Can I convert an ENEX file to Markdown?
Yes, though not with Evernote’s own tools. The note body is ENML, a dialect of XHTML, so any HTML-to-Markdown converter can process it once the notes are separated out. Attachments have to be decoded from base64 and written out as files separately.
Is ENEX the same as ENML?
No. ENEX is the container — the export file holding many notes. ENML is the markup used inside it for a single note’s body. Every ENEX file is full of ENML.

Get new posts by email

We build Harbor in public and write about it here. New posts and launch news, straight to your inbox.

No spam, just the occasional Harbor update. One-click unsubscribe anytime.

Anchored. Private. Yours.

Ready to harbor your everything?

A private second brain you own for life — free to start, no credit card.

Free plan to start · No credit card