Using Hook with Apple Reminders

You can use Hook Pro (3.2.2 Pro or later) with Apple Reminders with certain limitations. The main thing is that currently you would need to paste the script below into Hook’s Script Editor (or something similar).

Benefits: you can connect your reminders to the rest of your digital life!

Copy Link, Copy Markdown Link and Hook to Copied Link

By default, Hook’s Copy Link and Copy Markdown Link in Apple Reminders return links of the form x-apple-reminder://. You can paste those links anywhere. You can even use them on your iPad or iPhone. And you can “hook” them (i.e., bidirectionally link them) to other items in Hook.

Here is an example Markdown link: [Update mySleepButton female voice packs](x-apple-reminder://81A20K3B-0X9B-4B35-805B-3BC12J080CB6) .

Of course, you can also paste Hook garnered links directly in Reminders.

Hook to New > Apple Reminders

Due to Apple Reminders’ lack of automation for linking, Hook to New > Reminders is not available. In other words, when you invoke Hook in any item, and choose Hook to New..., you won’t see “Apple Reminders”.

However you can use Hook to New on a reminder. For instance, you can select an Apple reminder, bring up Hook, click the Hook title bar, and choose Hook to New… > Text Document, Apple Notes, or anything else you see in that menu.

Search for Apple Reminders bookmarks in Hook

To find Apple Reminders items you’ve processed with Hook, simply

  1. invoke Hook
  2. enter search mode (with ⌘F or a click)
  3. type: url:"x-apple-reminder" and hit the return key

Then, your bookmarks of Apple Reminders will be listed in the search results.

Integration script to use Hook with Apple Reminders (Pro user)

To use Hook with Apple reminders:

  1. Open Hook’s Script Editor preference pane
  2. click on “+” in bottom left corner of the window,
  3. select Apple Reminders from the dialog box,
  4. click on the “Get Address” tab, and
  5. copy and paste the following into that tab,
  6. click the save button at the bottom right of that (preferences) window.

Here’s the script.

set sysinfo to system info
set osver to system version of sysinfo

  considering numeric strings
    set isMonterey to osver ≥ "12"
  end considering

  tell application "System Events"
    tell its application process "Reminders"
        tell its window "Reminders"
            tell its splitter group 1
                tell its UI element 3
                    tell its UI element 2
                        tell its UI element 1
                            if isMonterey then
                                set reminderOutline to first UI element whose selected of UI element 1 is true
                                set theReminderName to value of UI element 2 of UI element 1 of UI element 1 of reminderOutline
                            else
                                set reminderOutline to first UI element whose selected is true
                                set theReminderName to value of UI element 2 of UI element 1 of reminderOutline


                            end if
                        end tell
                    end tell
                end tell
            end tell
        end tell
    end tell
  end tell
  tell application "Reminders"
    try
        set theReminder to the first reminder whose name is theReminderName
        set theURL to the id of theReminder as text
        set theURL to do shell script "echo \"" & theURL & "\"|sed 's/x-apple-reminder:\\/\\//x-apple-reminderkit:\\/\\/REMCDReminder\\//g'"

        return "[" & theReminderName & "](" & theURL & ")"
    on error errMsg
        display dialog "ERROR: " & errMsg
    end try

end tell

After doing that, in Apple Reminders select a Reminders item, and invoke Hook as you normally would (e.g., ⌃H).

Caveats

For the following reasons, this integration is not included in Hook itself (i.e., Pro users need to copy and paste the script themselves).

Apple Reminders lacks an API (adequate automation support) for linking. So, Hook uses “User Interface (UI) scripting” to control Apple Reminders. As discussed elsewhere on this site, UI scripting can be slow and potentially brittle — if Apple were to modify the Reminders UI the methods to get links to Reminders items might fail. Apple’s automation for copying scripts is particularly slow if you have thousands of reminders (worse for slower Macs). So when you try to invoke Hook in Apple Reminders you might get a dialog box, and Hook might wait for a while.

Another caveat is that, so far, this integration has only been vetted on macOS 11 (Big Sur) and macOS 12 (Monterey).

Also, this only works with iCloud reminders, not local reminders.

The good news

Using x-apple-reminder:// links (URLs) copied by Hook does not involve UI scripting, so it should not be slow.

Once you copy a link to an Apple reminder with Hook, that link should work for as long as Apple honors its Reminders links, urls which one may assume is “for good.”

Gratitude and see also…

Hook Productivity App Newsletter

Sign-up to receive emails about Hook productivity app. Our emails sometimes include coupons for discounts on great Hook-linkable apps made by other developers.





 Marketing permission: I give my consent to to be in touch with me via email using the information I have provided in this form for the purpose of news, updates and marketing.

What to expect: If you wish to withdraw your consent and stop hearing from us, simply click the unsubscribe link at the bottom of every email we send or contact us at support@cogsciapps.com. We value and respect your personal data and privacy. To view our privacy policy, please visit our website. By submitting this form, you agree that we may process your information in accordance with these terms.