If you've been using a Mac for years, you probably have hundreds or thousands of old events stored in iCal. All of that legacy data can bog down iCal and make it slow. And if you're syncing your calendars with others using BusySync, you're probably slowing them down too.
You can significantly increase the performance of iCal by archiving these old events using iCal Archiver.
iCal Archiver is a free utility that copies old events to an archive calendar and deletes them from the source calendar. The archive calendar can then be exported for safe keeping, and deleted from iCal. Once the old events have been deleted, iCal's database should be much smaller and require less memory, resulting in faster performance.
Note: iCal Archiver works only on Leopard and Tiger and does not work on Snow Leopard. As an alternative, download BusyCal and perform the following steps to archive old events in iCal.
- Launch BusyCal. It will read in all of your data from iCal.
- Select New Calendar from the File menu and name it "Archive Calendar".
- Switch to the List View and set a date range of Decade from the popup menu on the left to display a list of events in the last 10 years.
- Check the calendars in the source list that you want to archive. Make sure all read-only calendar subscriptions, like US Holidays, are unchecked.
- Shift-select all of the old events, then right-click on one of them and choose Calendar > Archive Calendar from the popup menu to move all of the old events to the Archive Calendar.
- Optionally, after you've moved the old events to the Archive Calendar, you can export the Archive Calendar by selecting it and choosing File > Export and saving it to the desktop. After exporting the Archive Calendar, you can delete it in BusyCal by right-clicking on it and choosing Delete.
- BusyCal syncs with iCal. Therefore, when you launch iCal all of the changes you made in BusyCal will sync to iCal and the old events will have been archived.
How to use iCal Archiver
Launch iCal Archiver and select the following options:
- Source calendar — You may archive events from all calendars, or a single calendar.
- Archive date — All events prior to the archive date will be copied to a new archive calendar and deleted from the source calendar.
When you click Start, a new Archive calendar will be created and all events prior to the archive date will be copied to the archive calendar and deleted from the source calendar. The progress will be displayed on the bottom of the window while the events are being archived.
Processing can take a while depending on the size of your calendar. Make sure you allow plenty of time for processing to complete and do not use or quit iCal while iCal Archiver is running. You may click the Stop button at any time to stop processing.
An alert will be displayed once processing is complete, recommending that you export and delete the Archive calendar from iCal.
To do so, select the Archive calendar in the source list, choose Export from the File Menu, and save the calendar as an ics file.
Then control-click the Archive calendar and choose Delete.
After deleting the Archive calendar, quit and relaunch iCal to save your changes and refresh the iCal database. Your iCal database should be much smaller now and require less memory, resulting in faster performance.
If you need to access the events on the Archive calendar at a later date, you can import the Archive calendar by double-clicking the ics file.
What a great utility--it helped me deal not just with my old calendar items but with the multiple entries caused by glitches in the Entourage-to-Ical-to MobileMe sync (which I no longer worry about because I don''t use Entourage any more). I had upwards of 7500 items for the utility to archive!
But do heed the note to allow plenty of time--my huge back calendar took three days to process. I'm grateful it wasn't me painfully deleting all those duplicates one by one!
Posted by: Lynne Constantine | December 30, 2008 at 07:23 AM
Even better: I just discovered the Ical Cleaner! Very nice. Makes short work of all the crazy duplicates and other anomalies that resulted from my days of Entourage-to-Ical-to-MobileMe syncing.
Yay BusySync!
Posted by: Lynne Constantine | December 31, 2008 at 06:40 AM
Does anyone know how it handles recurring events?
Ideally, it should remove all "old" versions of the appointment and create a new recurrence starting at whatever date is within the acceptable range. My fear is that it might remove the entire recurrence if any part (or the origin) falls outside the acceptable date range.
I've had some sync problems when I tell my sync utility to ignore events older than X weeks because it ignores current recurring events whose *original* event is outside the time range.
Posted by: Guy Burns | May 11, 2009 at 02:33 PM
Recurring events are ignored and left intact. After running iCal Archiver, you may want to delete the old recurring events and recreate new ones.
Posted by: John | May 11, 2009 at 02:59 PM
Awesome. Thanks for the quick response, John. :)
Posted by: Guy Burns | May 11, 2009 at 03:30 PM
This doesn't seem to work with iCal 4.0.1
Posted by: Rich | December 15, 2009 at 02:25 PM
Using 10.6 OS-X and latest ICAL the iCAL archiver does not appear work! The tool runs, says it's found lots of entries to remove (as expected) but it does not. I was so excited to find the tool and am now disappointed.
Has anyone else tested this recently please?
Posted by: Chris | January 04, 2010 at 01:30 PM
iCal Archiver does not work on Snow Leopard. As an alternative, download BusyCal, http://www.busymac.com, and perform the following steps to archive old events in iCal.
1. Launch BusyCal. It will read in all of your data from iCal.
2. Select New Calendar from the File menu and name it "Archive Calendar".
3. Switch to the List View and set a date range of Decade from the popup menu on the left to display a list of events in the last 10 years.
4. Check the calendars in the source list that you want to archive. Make sure all read-only calendars, like US Holidays WebDAV Subscriptions, are unchecked.
5. Shift-select all of the old events, then right-click on one of them and choose Calendar > Archive Calendar from the popup menu to move all of the old events to the Archive Events calendar.
6. Optionally, after you've moved the old events to the Archive Calendar, you can export the Archive Calendar by selecting it and choosing File > Export and saving it to the desktop. After exporting the Archive Calendar, you can delete it in BusyCal by right-clicking on it and choosing Delete.
7. BusyCal syncs with iCal. Therefore, when you launch iCal all of the changes you made in BusyCal will sync to iCal and the old events will have been archived.
Posted by: John | January 09, 2010 at 09:18 PM
I used ICA to archive my 2007 and 2008 events, and then deleted the archive file. However, it did not delete detached events (events that had been detached from a series).
Posted by: Rich Gasparre | April 07, 2010 at 10:03 AM