4

I want to transform my list of reminders in Reminders.app into a checklist inside a note in Notes.app. I tried dragging the list from the list of lists from Reminders to Notes and that didn't work. I tried dragging the contents of the Reminders list to a new Notes note and that imported the content with a [ ] before each item. Is there a way to convert theses into Notes' native checklist items?

  • I'm looking for an answer. – Steve Moser Oct 17 '17 at 20:03
  • @user3439894 Yeah, that solution would definitely work for me. – Steve Moser Oct 17 '17 at 20:23
2

The following AppleScript script will take the selected Reminders in Reminders and make a new Note in Checklist format in Notes. This can be run in Script Editor or saved as an AppleScript application.

  • Note: As this script uses UI Scripting, when run from Script Editor, it must be added to System Preferences > Security & Privacy > Accessibility in order to run. As an AppleScript application, the application would need to be added.


tell application "Reminders" to activate
delay 0.1
tell application "System Events" to keystroke "c" using {command down}
delay 0.1
set theNotesChecklist to ""
set theReminders to get the clipboard as string
repeat with thisParagraph in paragraphs of text of theReminders
    try
        set theNotesChecklist to theNotesChecklist & text 5 thru -1 of thisParagraph & return
        delay 0.1
    end try
end repeat
tell application "Notes" to activate
tell application "System Events"
    keystroke "n" using {command down}
    keystroke "l" using {shift down, command down}
    delay 0.5
    keystroke theNotesChecklist
    delay 0.1
    key code 51 -- # Delete - Deletes the last 'return' typed.
end tell

The above script assumes the selected Reminders in Reminders have no information associated with them. In other words, other then the Name property no other associated properties have been set. If other properties have been set, add the if statement to the repeat loop as shown in the code below:

repeat with thisParagraph in paragraphs of text of theReminders
    try
        if thisParagraph starts with "[ ]" then
            set theNotesChecklist to theNotesChecklist & text 5 thru -1 of thisParagraph & return
            delay 0.1
        end if
    end try
end repeat

Note: With UI Scripting, the value of the delay commands may need to be changed on your system and or additional delay commands added as appropriate.

  • Awesome, it works! I just had to add a few more delays to get it work for me. See the edit. – Steve Moser Oct 17 '17 at 21:12
  • @Steve Moser, Yeah, that's understandable and why I always add that note. On my system, as originally written, it worked as was posted. That's one of the pitfalls of UI Scripting – user3439894 Oct 17 '17 at 21:24

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .