Using Hookmark with Apple Reminders

You can use Hookmark 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 (or something similar) into Hookmark’s Script Editor.

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, Hookmark’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 Hookmark.

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 Hookmark 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 Hookmark 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 Hookmark, click the Hookmark 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 Hookmark

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

  1. Invoke Hookmark.
  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 Hookmark with Apple Reminders (Pro user)

To use Hookmark with Apple reminders:

  1. Open Hookmark’s Script Editor preference pane.
  2. Click on “+” in the bottom left corner of the window.
  3. Select ‘Apple Reminders’ from the dialog box.
  4. Click on the “Get Address” tab.
  5. Copy and paste the following script 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 Hookmark as you normally would (e.g., ⌃H).

Caveats

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

Apple Reminders lacks an API (adequate automation support) for linking. So, Hookmark 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 Hookmark in Apple Reminders you might get a dialog box, and Hookmark 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 Hookmark does not involve UI scripting, so it should not be slow.

Once you copy a link to an Apple reminder with Hookmark, 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…