Zettelkasten Forum

Trouble Setting Reminder to Review Zettel (using KM, AppleScript, Reminders)

This post may belong better on the KM or AppleScript forums, but I thought I'd ask here first mainly because I bet someone will have a far easier process than I'm trying to build.

After writing a Zettel in The Archive, I want to remind myself to review it in a day, and after that, remind myself for a few days later. A progressive review kind of thing.

I have a KM macro that:

  1. Prompts me for the number of days, from a pre-made list.
  2. Writes a tag (#ReviewXDays, where X is the number of days) to an inserted 2nd line on the Zettel
  3. Copies the Zettel's h1 (from the 3rd character to the end of the line)
  4. Creates an Apple reminder "Review such-and-such Zettel" with a due date of the number of days out

It all works except the calculated Reminders date at the very end. I think it must be either a variable type problem, or a syntax problem in the AppleScript. I have a temporary KM Action before the last step that displays the date I'm trying to use. If I simply copy that (correct-looking) result and paste it as a constant string in the final KM action, it works. It just won't accept the variable version of that date.

The error is some variation of "execution error: reminders got an error: can't get date (1/27/2022)", depending on the tweaks I've tried in the script syntax.

Has anyone

  • created some kind of progressive review automation for themselves that's better than this
  • worked with pushing a due date to Reminders via AppleScript

The image is of the last few actions, where the "make new reminder" line in the AppleScript is where I fail.

...and here is my KM macro (1st time sharing, hope I do this right):

Add Review Tag

Thank you all.


  • Quick clarification of the problem. In that last action, the long line beginning with "make new reminder":

    • if I put the string constant "1/27/2022 6:00 AM" in instead of VarReviewDue, it works
    • If I give it VarReviewDue, where that variable contains "1/27/2022 6:00 AM", it fails

    Please let me know if anything else is unclear. This may well be a question for a different forum.

  • I've had this problem in the past. Getting a variable from one scripting paradigm to another is not as straightforward as you'd think. I think most of the issue centers around global/local variables. Getting a Keyboard Maestro variable into a python script took loading a module and some unique syntax. I suspect that the same might be necessary to get an AppleScript variable recognized in Keyboard Maestro. The problem I had was that Keyboard Maestro would not report any error in my situation. I would fail that one step, which made it confusing and complicated to find the culprit. I asked on the Keyboard Maestro forum and got a quick answer that solved my issue with the various variables.

    I love to review and think it is key to a growing ZK. I don't understand creating a note and not reviewing it. Review is how I correct my bad grammar and clarify vague, poorly articulate ideas. During my morning journaling, I do, as a minimum, a review as outlined in the screenshot. I use Keyboard Maestro to create a journaling template with links that launch The Archive and the note list populated with the right notes.

    I love journaling, and tying ZK review to journaling works powerfully. I use journaling as my "trigger" to review. This works as my "reminder" because I see it every day. If I'm busy, I may get to journaling later in the day.

    Using this method, I review every zettel in my entire ZK every year, a few each day. The earliest notes I've already reviewed twice. I'll grant you that not every review is deep, but I know that another review is upcoming in a year. So far, the time commitment for review is not so demanding, and it is delightful and rewarding. As a timely example, up for review today was Opportunistic compression ›[[201901261934]] About progressive summation - "You summarize notes, not knowing what question might be asked in the future."

    January 26, 2022

    Will Simpson
    I must keep doing my best even though I'm a failure. My peak cognition is behind me. One day soon I will read my last book, write my last note, eat my last meal, and kiss my sweetie for the last time.

  • Thank you Will. I've been trying to think this through myself, and as I suspected, seeing another's thoughts open up a lot of possibilities for me.

    I've seen variations of your screenshot on your previous posts. is that a KM Macro you've posted elsewhere? It would almost completely satisfy my requirements right out of the box. If it's not something sharable, I'll get to work on hacking an imitation together. I really like the information yours shows.

  • I see your post at https://forum.zettelkasten.de/discussion/786/zettelkasten-statistics. I didn't look at it deeply because it didn't look like your more recent stuff. I'm going to poke through there, I bet it has the ideas that I need.

    As always, thanks Will, and thanks all.

  • I've been switching some of my Keyboard Maestro macros to python. This one is the one I had the aforementioned variable issues with. It is really not in a sharable state. I have customization embedded that would cause headaches. Making my python code generic enough to be sharable is something I'm working on.

    The link you point to has a link to an Keyboard Maestro macro I created a while ago but it should lead you on the path.

    Here is a link to a bit newer version of the same Keyboard Maestro only designed to put the links in a variable that can be printed .

    Will Simpson
    I must keep doing my best even though I'm a failure. My peak cognition is behind me. One day soon I will read my last book, write my last note, eat my last meal, and kiss my sweetie for the last time.

Sign In or Register to comment.