This is a classic productivity hack. To get this working, you'll need to make sure you have the Global Hotkeys for Joplin configured, as it makes the "New Note" part of the script much more reliable.
Here is a clean AutoHotkey (v2) script to handle this. I've designed it to be smart: if Joplin isn't open, it launches it; if it is, it just brings it to the front.
The AutoHotkey Script
#Requires AutoHotkey v2.0
; Set your desired hotkey here (currently Ctrl+Alt+J)
^!j::
{
; Path to your Joplin executable - update if installed in a custom location
joplinPath := A_AppData . "\Local\Programs\Joplin\Joplin.exe"
; 1. Check if Joplin is running, if not, launch it
if !WinExist("ahk_exe Joplin.exe")
{
Run(joplinPath)
WinWait("ahk_exe Joplin.exe")
}
; 2. Bring Joplin to the foreground
WinActivate("ahk_exe Joplin.exe")
WinWaitActive("ahk_exe Joplin.exe")
; 3. Create a New Note
; Default Joplin shortcut for New Note is Ctrl+N
Send("^n")
Sleep(200) ; Small pause to allow the new note interface to load
; 4. Insert Date
; Formats as: Monday, February 16, 2026
currentDate := FormatTime(, "LongDate")
Send(currentDate . "{Enter}---{Enter}")
}
How to set this up
* Install AutoHotkey v2 if you haven't already.
* Right-click your desktop, select New > AutoHotkey Script.
* Paste the code above and save it.
* Important: Check your Joplin settings (Tools > Options > Keyboard Options). Ensure "New note" is actually set to Ctrl+N. If you’ve changed it, update the Send("^n") line in the script.
* Double-click the script to run it. Press Ctrl+Alt+J to test.
Why this works better than a "dumb" macro
* Window Awareness: Using WinActivate prevents the script from opening multiple instances of Joplin if it's already running.
* Dynamic Formatting: I added a horizontal line (---) after the date. Since Joplin uses Markdown, this instantly creates a nice visual header for your new entry.
* Wait Commands: The WinWaitActive command ensures the script doesn't start typing "February..." into your browser or whatever window you were just using while Joplin is still loading.