AppleScript: Re-set Reminders checklists

Context

I’ve recently moved a number of checklists (e.g. morning/evening routines) out of OmniFocus and into Reminders. I’ve found that this helps make my OmniFocus database less cluttered (better for using the new widgets!), and I’m able to run through and mark tasks off on my Apple Watch a little more easily.

I wanted to re-use these checklists but didn’t want to have to re-create them each time, or manually “un-complete” each task in the list each time I wanted to use a checklist.

Solution

Using some examples from this thread at MacScripter, I pieced together an AppleScript which finds Reminders lists whose name includes the character “↻”, and marks all the tasks in these lists as incomplete.

(Unfortunately, AppleScript seems to have some limitations when it comes to accessing lists within folders, so the lists need to be at the root level.)

I’m using Keyboard Maestro with a simple ‘Execute an AppleScript’ action to run this script daily at 4am, so when I wake up in the morning my checklists are ready and waiting to be checked off.

The Script

tell application "Reminders"
	
	set theLists to get every list whose name contains "↻"
	
	repeat with aList in theLists
		tell aList
			set theReminders to every reminder
			repeat with aReminder in theReminders
				set completed of aReminder to false
			end repeat
		end tell
	end repeat

end tell

Leave a Reply