Is Reminders App Linkable?

The list of Linkable apps https://hookproductivity.com/what-mac-apps-are-compatible-with-hook-app includes Apple Reminders.

However I get a “no linkable item found” error when I try it. (Big Sur 11.0.1, Hook 2.1).

Does it work for others?

REminders is listed as unsupported.

The legend at the top of the page says:

:raised_hand: : The app cannot currently be linked due to its lack of an API or its user interface.

then the page says:

  • Apple Reminders: :raised_hand:

It is explicitly listed because it would be a FAQ.

1 Like

Thank you - egg on my face for not reading the legend more carefully.

FWIW though - maybe the title and intro paragraph could be clarified? And/or maybe the “unlinkable” icon could be in red or otherwise more obviously distinguished from the thumbs-up.

Anyway and more importantly - Reminders does have Applescript support. What Applescript feature is missing to make it linkable?

1 Like

Reminders has an AppleScript dictionary. But it it is not linkable — can’t get the URL or title of a reminder.

list and reminder exist but there is no way to convert these to usable variables in a script?

image

image

not to my knowledge. I’d love to be shown wrong. (I’m somewhat of a Popperian :blush: [but Lakatos was closer to the mark IMHO]. )

1 Like

That’s an obscure reference. :slight_smile:

I just want to share a script which syncs due reminders to the Calendar app and it also links back to the original reminder. So it contains a way to link to specific reminders.

This undocumented x-apple-reminderkit://REMCDReminder/${UUID} URL scheme works on the latest version of iOS and macOS. The ${UUID} part can be found via AppleScript.

use AppleScript version "2.4" -- Yosemite (10.10) or later
use scripting additions

property calendarName : "Reminders" -- This is the name of your calendar

tell application "Calendar"
	set calendarElement to calendar calendarName
	tell calendar calendarName
		set theEvents to every event
		repeat with currentEvent in theEvents
			delete currentEvent
		end repeat
	end tell
end tell

tell application "Reminders"
	set theReminders to every reminder whose completed is false and (due date > (current date) or due date < (current date)) and (name of container is not "Reminders")
	repeat with theReminder in theReminders
		set theName to name of theReminder
		set theBody to body of theReminder
		set theDueDate to due date of theReminder
		set theURL to the id of theReminder
		set theURL to do shell script "echo \"" & theURL & "\"|sed 's/x-apple-reminder:\\/\\//x-apple-reminderkit:\\/\\/REMCDReminder\\//g'"
		
		tell application "Calendar"
			tell calendarElement
				if not (exists (first event whose (start date = theDueDate) and (summary = theName))) then
					set theEvent to make new event with properties ¬
						{summary:theName, start date:theDueDate, end date:theDueDate, url:theURL, allday event:true} at calendarElement
				end if
			end tell
		end tell
	end repeat
end tell

The only problem remaining for Hook right now that there no scripting API that I’m aware of to get the currently selected reminder.

1 Like