-
-
Save drdrang/480831c3eb35d5a66b5d681e881bdef3 to your computer and use it in GitHub Desktop.
set remindersOpen to application "Reminders" is running | |
set monthAgo to (current date) - (30 * days) | |
tell application "Reminders" | |
set myLists to name of every list | |
repeat with thisList in myLists | |
tell list thisList | |
delete (every reminder whose completion date is less than monthAgo) | |
end tell | |
end repeat | |
if not remindersOpen then quit | |
end tell | |
Copy/paste the script into the "Script Editor" application (Applications -> Utilities), press play.
Or you could save this to a file, "Purge Old Reminders.scpt," and then from Terminal use the command line program osascript,
osascript "Purge Old Reminders.scpt"
You'll be asked to grant Terminal permission to access your Reminders.
Any way to execute this from a Windows PC or directly from iPhone?
There are ways to trigger AppleScripts from an iPhone, but you definitely have to have a Mac in order to run the AppleScript.
Is this script permanently activated upon pressing "play" button in script editor? If so, how do you disable it afterwards? @drdrang
Like all AppleScripts, it runs until it's finished or encounters an error. But there's nothing in the script that causes it to run repeatedly. If it is running for a long time for you, chances are you have a huge number of completed reminders. I've learned since writing this script that AppleScript sometimes takes a ridiculously long time to process the every reminder whose
clause. If that's what your question is about, you can stop the process in Script Editor by pressing the Stop button (black square) near the upper left corner.
If anyone has issues with this script try changing 30 to 1 in the second line so that is deletes the tasks no matter how long ago you deleted them.
Excuse my ignorance but how would you execute this script?