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.

High Priority example

Medium Priority example

Low Priority example

No Priority example

The resulting entries into Reminders.app will be...

Reminders entries

Solution 3:

Yes. And it is built-in.

Tools used:

  • OS X 12.0.1
  • Reminders
  • System Preferences

Method:

  1. Open Reminders
  2. Open a reminder
  3. Note the menubar sequence to create priority:
    Menubar > Edit > Priority > None _ Low / Medium / High
  4. Open System Preferences
  5. Keyboard > Shortcuts > App Shortcuts > +
  6. Application: Reminders.app
  7. Menu title: Edit->Priority->None. Keyboard shortcut: Shift+Ctrl+`
  8. Menu title: Low. Keyboard shortcut: Shift+Ctrl+1
  9. Menu title: Medium. Keyboard shortcut: Shift+Ctrl+2
  10. Menu title: High. Keyboard shortcut: Shift+Ctrl+3
  11. Close and reopen Reminders
  12. 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"