Skip to main content

Migrate Evernote HTML exports into a Notion database

Project description

evernote2notion

Migrate your Evernote notes into a Notion database — with full fidelity.

  • Converts Evernote's HTML export (higher quality than ENEX) into native Notion blocks
  • Uploads images, PDFs, and other file attachments using Notion's file upload API
  • Resumes automatically if interrupted; skips already-imported notes
  • Handles Notion API quirks: rate limits, payload size limits, WAF-blocked content

Installation

pipx install git+https://github.com/koichikawamura/evernote2notion.git

Setup

1. Export your notes from Evernote

In Evernote, select all notes → File → Export Notes → HTML. You'll get a folder of year-named subfolders:

my-export/
  2018/
  2019/
  ...
  2025/

2. Create a Notion integration

  1. Go to https://www.notion.so/my-integrations and create a new Internal integration.
  2. Copy the Internal Integration Secret (starts with secret_).

3. Share a Notion page with the integration

  1. In Notion, open (or create) the page that will contain your imported notes.
  2. Click "…""Add connections" and select your integration.
  3. Copy the page ID from the URL — it's the 32-character hex string at the end:
    https://www.notion.so/My-Page-3a8f2b1c4d5e6f7a8b9c0d1e2f3a4b5c
                                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    

Usage

export NOTION_TOKEN=secret_xxx

# Test: parse notes and report block counts without uploading
evernote2notion --export-dir my-export --dry-run

# Import a small batch first
evernote2notion --export-dir my-export --parent-page-id <PAGE_ID> --limit 10

# Import a single year
evernote2notion --export-dir my-export --parent-page-id <PAGE_ID> --year 2022

# Import everything
evernote2notion --export-dir my-export --parent-page-id <PAGE_ID>

# Remove duplicate pages (if you re-imported notes)
evernote2notion --parent-page-id <PAGE_ID> --deduplicate

Progress is saved to import_progress.json in the current directory after every note. If the run is interrupted, re-run the same command and it picks up where it left off.

What gets imported

Each note becomes a page in an "Evernote Notes" Notion database:

Property Type Description
Name Title Note title
Year Select Year the note was created
Created Date Original creation timestamp
Updated Date Last updated timestamp
Tags Multi-select Evernote tags
Source URL URL Original URL (for web clips)
Source Select Source app (web.clip, mobile, etc.)

Note content is converted to native Notion blocks: paragraphs, headings, bullet/numbered lists, checkboxes, code blocks, tables, quotes, dividers, images, PDFs, and other file attachments.

License

MIT

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

evernote2notion-0.1.0.tar.gz (31.6 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

evernote2notion-0.1.0-py3-none-any.whl (15.6 kB view details)

Uploaded Python 3

File details

Details for the file evernote2notion-0.1.0.tar.gz.

File metadata

  • Download URL: evernote2notion-0.1.0.tar.gz
  • Upload date:
  • Size: 31.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.11.8 {"installer":{"name":"uv","version":"0.11.8","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for evernote2notion-0.1.0.tar.gz
Algorithm Hash digest
SHA256 c3e0f06335062ade2ce50772e11282e28fa2a4a5ca2440ef2d9bbbe0c7be92e6
MD5 3e59f8d6a743926f07d269faa5609113
BLAKE2b-256 85bd01ffb4d7b2ae776bc4dd9f9112bd87a0c65a9ef9bbfe6de3492ac06bfeec

See more details on using hashes here.

File details

Details for the file evernote2notion-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: evernote2notion-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 15.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.11.8 {"installer":{"name":"uv","version":"0.11.8","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for evernote2notion-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 d42062d9a4584365168d77aa6235aab69fc932c38e34cf1ae5379e9b1f019a53
MD5 118c436c44c64c066ef9f35dcf0aaa8f
BLAKE2b-256 246f2e50327c564d21c2b24471c588aa3f3d87209b6e9525796321c3a9079bcd

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page