Is there a keyboard shortcut that I could use to set a task priority in Reminders.app on a Mac?
I know that if I want to create a new task in Reminders and I write something like:
Buy milk tomorrow at 3:00pm
Reminder.app understands by itself that the date and the time of execution of the task will be tomorrow at 3:00pm and it will set both of them for me. So I don't need to select the task, push the "i" button, check the option "Remind me on a day" and set a time and a date.
My question is quite simple, and is this:
Is it possible to do the same for priorities ?
I mean: I'd like to write something like:
Buy milk !!
and see the app that understands that the two exclamation points on the task mean that it has an higher priority. I tried to use different sentences and AFAIK there's no way of telling Reminders to set the priority for me, without having to manually set it. That would be super-handy for me. But I might be wrong, and this is why I'm asking you if there's any way to avoid having to go in the options of each task and set the priority.
Thank you and best regards
Solution 1:
By default there is no way to set the priority of a reminder within the text.
There is a least one third-party app that was designed to do this, called (appropriately enough) AddToReminders, though it seems to have been abandoned, and you would need to compile the app yourself using Xcode.
Solution 2:
I'd recommend using Keyboard Maestro for just such an operation. This is perfect for a KM macro.
EDIT: I tested the following and it works well.
Create the following AppleScript:
tell application "System Events"
display dialog "New Reminder…" default answer ""
set reminTitle to text returned of result
set thePriority to 13
set lastChars to reverse of characters -3 through -1 of reminTitle
log lastChars
set i to 0
set j to 0
repeat 3 times
set i to i + 1
if item i of lastChars is "!" then
set thePriority to thePriority - 4
set j to j + 1
end if
end repeat
set reminTitle to text 1 through (-(j + 1)) of reminTitle
if text -1 through -1 of reminTitle is " " then
set reminTitle to text 1 through -2 of reminTitle
end if
tell application "Reminders"
set newremin to make new reminder
set name of newremin to reminTitle
set priority of newremin to thePriority
end tell
end tell
Then assign the AppleScript to a Keyboard Maestro shortcut.
When you run the macro, you will be prompted to enter the reminder. Use one exclamation point to set "Low" priority in Reminders, use two to set "Medium", and three for "High". Using no exclamation points will set to priority "None". Note that using this does eliminate Reminders' ability to parse due dates.
The resulting entries into Reminders.app will be...
Solution 3:
Yes. And it is built-in.
Tools used:
- OS X 12.0.1
- Reminders
- System Preferences
Method:
- Open Reminders
- Open a reminder
- Note the menubar sequence to create priority:
Menubar > Edit > Priority > None _ Low / Medium / High - Open System Preferences
- Keyboard > Shortcuts > App Shortcuts > +
- Application: Reminders.app
- Menu title: Edit->Priority->None. Keyboard shortcut: Shift+Ctrl+`
- Menu title: Low. Keyboard shortcut: Shift+Ctrl+1
- Menu title: Medium. Keyboard shortcut: Shift+Ctrl+2
- Menu title: High. Keyboard shortcut: Shift+Ctrl+3
- Close and reopen Reminders
- Select a reminder, enter the keystroke.
Replace shortcuts as required. These were chosen as they're not currently used by another program with a system-wide impact (at least on my install).
This is generalisable to all applications.
As there are two menu items named "None," I relied on Luoma (2015) citing a dead site for the "A->B" menu hierarchy specification in OS X Keyboard shortcuts.
References
Luoma, TJ (2015-02-17) "Make Keyboard Shortcuts for Two Menu Items with the Same Name"