A collection of productivity-enhancing utilities for Evernote for Windows.
Developed for and tested with Evernote 5.0 on Windows 7.
Supported Use Cases
Disclaimer: The implementation is tightly coupled to my broader Evernote-based GTD organizational system (TODO: link to description of my system). It is meant to enhance my own productivity and efficiency using my system, which means some personalized behaviours within the code. It should quite easy to modify my scripts to suit your needs, and anyone is encouraged to do so!
Quick creation of a new "action-note" with Launchy
A fast way to create a new Evernote "action-note", no matter what's the active application, or whether Evernote application is open.
Then hit "Enter" - a new note will be created in a pre-determined notebook, tagged automatically based on the chosen action context and title syntax, and opened in a separate window ready for further editing (or closing):
Specifying a different notebook in the title
The quick-note-creation script supports special syntax in the title for overriding default parameters, like the destination notebook for the new note.
The script supports "lazy notebook lookup", meaning it will try to select a notebook that matches the supplied string exactly, but if there's no match, it will also try:
- A maximal exact partial match: an existing notebook that contains the exact supplied string. if there are several such notebooks, it will select the one with the least unmatched strings before and after the matched string.
- A maximal word-overlap match: an existing notebook that has overlapping words with the supplied string. "words" are splitted on whitespace and "-". repeating words are counted only once. in case of multiple matched notebooks, it will select the one with the largest intersection.
All notebook lookups are case-insensitive.
Setting a reminder from the title
Similarly, it is also possible to prefix the note title with
/reminder:oct 3/ or
/tickle:next sunday, 10am/ in order to create a note with a reminder associated to it.
The note will be created with a reminder set to that date at 9am (can be modified in the code):
The script supports natural language date-time specification using parsedatetime Python library,
so this is a dependency (install with
pip install parsedatetime).
Note: The reminder time is calculated based on the current timezone.
In case the script was unable to parse the date, it will not set a reminder, but will prepend the note title with "FIX REMINDER" so you can see it was unable to set a reminder.
Initialization of a new project in Evernote with Launchy or using a keyboard shortcut
Automate the process of initializing a new project in Evernote, where "project initialization" in my system includes:
- Creating a project-specific notebook in a notebook stack.
- Creating initial project notes in the new project notebook, based on a template.
Alternatively, using AutoHotKey, you can bind a keyboard shortcut (e.g. "Ctrl+Alt+p", or "^!p") to the "CreateProject.exe" executable (which is a compiled version of the AutoHotKey script) to achieve something similar with AHK instead of Launchy.
This, of course, requires that AutoHotKey is installed, and a keyboard shortcut is defined like this:
#IfWinActive ahk_class ENMainFrame ^!p:: Run,"<package-dir>\AHK\CreateProject.exe" #IfWinActive
- OS: Windows
- Evernote >= 5.0
- Python 2.7
- parsedatetime Python library
- Launchy (this probably works with other keyboard launchers, but the details will differ)
- Optional: AutoHotkey (needed if you want to change things, or bind custom keyboard shortcuts)
- Download the package (or clone it), and save it wherever you like on your computer (let's call that path
- Modify the scripts to fit your workflow and system (change default notebooks, tags, action contexts, note templates).
- Configure Launchy to index batch script files from the QuickNotes directory under
- Click "Rescan Catalog" and "OK" to finish the process.