macOS: Batch delete calendar events via Shortcuts.app #

While Automator and AppleScript fail to reliably batch delete thousands of calendar events in recent macOS versions (see Archiving Calendar.app events as plain text), Shortcuts.app is surprisingly successful:

Steps

  1. Backup all calendars

  2. File → New Shortcut

  3. Action Library → Apps → Calendar

  4. Drag "Find Calendar Events" into the shortcut editor (aka "main window")

  5. Change Start Date as desired then click the plus symbol to the right and add additional criteria (e.g., "Calendar is Travel", "Calendar is not US Holidays", "End Date is Before 1/1/2023, 00:00", etc.)

  6. Drag the "Remove Events" action underneath → click "Show More" → leave "Include Future Events:" unchecked to preserve repeating events linked to ones that will be deleted

  7. Before running the shortcut, open Shortcuts Preferences... → Advanced and enable "Allow Deleting Large Amounts of Data"

Examples

Delete all events in the Travel calendar within the last 8 years that took place before 1/1/23 while preserving any repeating events after that date:

Batch deleting events in a given calendar via Shortcuts.app

Delete events in all calendars other than Birthdays and US Holidays within the last 13 years that took place before 1/1/23 while preserving any repeating events after that date:

Batch deleting events in all but two calendars via Shortcuts.app

Notes

/mac | Dec 11, 2023


Subscribe or visit the archives.