Become a MacRumors Supporter for $50/year with no ads, ability to filter front page stories, and private forums.

MeMe&Me

macrumors newbie
Original poster
I'd like to archive older events on various iCalendar calendars and then remove the older events because I believe I have too much stored and can no longer search for past events (i.e., on my iPhone "No results: Calendar is organizing events and some results may not appear. Try again later." and on my laptop, events simply don't show.) I have iOS 26.5 on an iPhone 15 Plus and iOS 26.5.1 on Mac Power Book, 2021. Any guidance? Ty!
 
On Mac Calendar, can create a Calendar Archive (File > Export > Calendar Archive...) which will save all events. Or can select a Calendar in the Calendar list/sidebar and Export (File > Export > Export...) to just export that Calendar as an ics file.

Don't think you can do any of that on i*OS. And if looking to clear out old events, gets to be a pain, but Shortcuts can help with that. Something along the lines of below, save all events that are a year or more older and delete them (have not tested but pretty straight forward in Shortcuts).
 

Attachments

  • carch.png
    carch.png
    278.5 KB · Views: 20
To archive I'd probably just create new calendars (i.e. Personal-Archive, Business-Archive) and move the events over to those. Then, deselect the archive calendars so that they don't show.
 
  • Like
Reactions: NoBoMac
On MacOS...

As NoBoMac says, you can export the calendar in two ways. Native, and ICS. I'd do both, just to make sure 🙂

Then, either create a shortcut (probably easier!) or I have an old Applescript I wrote years ago, which probably still works.

set delDate to date the "01-01-2015"

set choice to display alert "Deleting old events" message "Will delete items earlier than " & date string of delDate buttons {"cancel", "Run"} default button "Run" giving up after 5

if button returned of choice = "cancel" then
error number -128
end if

set skipCalendars to {"Suggested Events", "Birthdays"}
set CalendarList to {}
set totalDeleted to 0

tell application "Calendar"

set everyCalendar to title of every calendar

repeat with i from 1 to count everyCalendar
if {everyCalendar's item i} is not in skipCalendars then set CalendarList's end to everyCalendar's item i
end repeat

repeat with myCal in CalendarList
tell calendar myCal
set theEventList to (events whose start date is less than delDate)

set eventCount to (count of theEventList)
if eventCount > 0 then
set choice to display alert myCal message "There are " & eventCount & " events prior to " & date string of delDate buttons {"cancel", "skip", "Run"} default button "skip" giving up after 5

if button returned of choice = "Run" then
repeat with theEvent in theEventList
delete theEvent
end repeat
set totalDeleted to totalDeleted + eventCount
else if button returned of choice = "cancel" then
error number -128
end if
end if
end tell
end repeat

display alert "Done!" message "Deleted " & (totalDeleted as text) & " old events" buttons {"OK"} giving up after 3

end tell
 
  • Like
Reactions: NoBoMac and MeMe&Me

A bit of overkill that Shortcut, really no need to output the events as text, the Calendar Find action returns events as ics items.

This little snippet attached is my weekly backup pf Calendar. Creates a zip file containing a folder with each event as an ics item, which are importable to Apple Calendar apps, Google, and anyone else using ics format. (Ignore Run Action: Shortcut to format pathname to backup file/result)
 

Attachments

  • IMG_2172.jpeg
    IMG_2172.jpeg
    124.9 KB · Views: 14
  • Like
Reactions: adrianlondon
Register on MacRumors! This sidebar will go away, and you'll see fewer ads.