Last active
April 18, 2025 17:07
-
-
Save drdrang/480831c3eb35d5a66b5d681e881bdef3 to your computer and use it in GitHub Desktop.
AppleScript to delete all reminders more than 30 days old.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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 | |
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.
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.