Using Evernote + AppleScript + QuickSilver for a daily task log

Trying to be better about tracking my daily workload, I need a lightweight hotkey-based mechanism to quickly capture something as I switch tasks. I can then go back later and total up the times, or just jog my memory about what I was doing on a certain day at a certain time. Tracking this information in Evernote is also a bonus as it’s available and searchable on all my devices.

I created an AppleScript first that did the actions needed:

(* Notebook name to create these journal entries in *)
property nb : "Daily Diary"

(* BEGIN HANDLER CALL

NOTE: I have added a new portion to the script so that users who
aren't familiar with how to use a handler can run the Script
directly and check it out. If you'd like to use this as a handler
in your own AppleScript, Just delete or comment out the portion
of code between "BEGIN HANDLER CALL" and "END HANDLER CALL"

*)

set notetext to text returned of (display dialog "Diary Entry" default answer "")
my handle_string(notetext)

on handle_string(notetext)
if notetext is not "" then
CreateDailyEvernote(notetext)
end if
end handle_string

(* END HANDLER CALL *)

on CreateDailyEvernote(txt)
set t to "Daily Journal " & (do shell script "date +'%Y-%m-%d'")
set crlf to (ASCII character 13) & (ASCII character 10)
set timeStr to time string of (current date)

(* keep track of the app that was running when we hit the hotkey *)
set frontApp to (path to frontmost application as Unicode text)

tell application "Evernote"
set foundNotes to find notes "notebook:\"" & nb & "\"" & " intitle:\"" & t & "\""
set found to ((length of foundNotes) is not 0)
if not found then
set curnote to create note with text crlf & timeStr & ": " & txt & crlf title t notebook nb
else
repeat with curnote in foundNotes
tell curnote to append text crlf & timeStr & ": " & txt & crlf
end repeat
end if
activate
end tell

(* put the old foreground app back on top *)
tell application frontApp to activate

(* just to be sure there are no odd effects, explicitly hide Evernote *)
tell application "System Events"
set visible of process "Evernote" to false
end tell

end CreateDailyEvernote

and then set a QuickSilver trigger to run the script (I use Ctrl-Cmd-J — for “Journal”).

The effect is a simple plain-text list of entries:

imagebam.com


This process is based mainly on the work done by Sonny Gill (“Creating a daily log in Evernote from Quicksilver“), but I took out the parts that write HTML into the note and deal with the clipboard as I don’t want either. I also added some AppleScript to put back the foreground app that was running when I hit the hotkey, in order to minimze the impact to my workflow. I don’t want to have to be clicking or using Cmd-Tab to try and get back to the app I was running before…

Please don’t “sell out” Memorial Day

Many will “celebrate” Memorial Day as any other holiday, with barbecues, beer, and commercial sales at local malls. Simply put, they have sold out Memorial Day.

This weekend, please visit a local cemetery, find a marker for any veteran, and reflect on their service to this great nation.

“Your silent tents of green
We deck with fragrant flowers;
Yours has the suffering been,
The memory shall be ours.”
Henry Wadsworth Longfellow

American Flag and Cross in Normandy American Cemetery