過去のイベントを一括消去するには?

ICal内のイベントを年単位で一括消去する効率良いやり方はないでしょうか?
先日来、.Mac上に公開していたスケジュールが「一時的にご利用になれません」の表示が1ヶ月近く続いたため、サポートに問い合わせた結果、「iCalのデータが大きすぎるかもしれない」とのこと。
実際、2003年1月からのイベントが溜まっていたためとも考えられたので、
1)現在のiCalデータのコピーをつくる。
2)コピーでは2006年以降のデータを消去し、2003年から2005年までのイベントのみとする。
3)もう一方では2005年以前のデータを消去し、2006年以降のイベントのみを残しておく。
を試すことになりましたが、サポート外とのことでAppleCareに問い合わせました。
AppleCareでは、「月間表示にして、シフトキーを押しながらイベントを片っ端からクリックして編集対象とし、削除すればよい」と教えてもらったのですが、ひと月分に書き込まれているイベント数もかなり多くクリックを繰り返すのもかなり大変な作業。
ワープロのようにドラッグして範囲内に含まれているものがすべて選択される、ならよいのですがその手法も使えず、今のところちまちまクリックしています。
過去のイベント記録を残しておきたいということもあり、データがそのまま分割できれば良いのですがそのようなこともできない。
iCalの各イベントはユーザディレクトリのライブラリ→カレンダーのなかにカレンダー名ごとのフォルダがつくられていて、その中に格納されていますが、各イベントに対応するファイルは日付等分かりやすいファイル名ではないためファインダ上で効率よく該当するイベントを指定する訳にも行かなさそうです。
何か、効率よくイベントデータを切り分ける、もしくは消去する手法ありませんか?

投稿日 2008/07/03 15:12

返信: 2

2008/07/03 15:54 Community User への返信

自分ではやったことありませんけど(自分の場合,1年ごとに新しいカレンダーを作るようにしています),iCal のデータファイルを眺めてみると,とても簡単なテキストファイルです。ターミナルを使うことに抵抗がなければ簡単にできると思います。
テキストエディタで、文字コードをUTF8にして開いてみると,例えばこんな感じです。
********************
BEGIN:VCALENDAR
VERSION:2.0
PRODID:-//Apple Inc.//iCal 3.0//EN
CALSCALE:GREGORIAN
BEGIN:VEVENT
SEQUENCE:6
TRANSP:OPAQUE
UID:0A18D883-71C2-445E-A051-128FC93C0F1D
DTSTART;TZID=Asia/Tokyo:20080214T104000
DTSTAMP:20071210T035143Z
SUMMARY:(個人データのため削除)
CREATED:20080309T162937Z
DTEND;TZID=Asia/Tokyo:20080214T121000
END:VEVENT
END:VCALENDAR
*****************
ここで、DTSTART;のタグが予定の日付になっています。
なので、ターミナルで,
cd ‾/Library/Calender/xxxxx/Events
として問題のディレクトリーに入り(xxxxx はディレクトリー名でランダム文字列になっています),
grep "DTSTART;TZID=Asia/Tokyo:2005" * -exec rm {} ¥;
としてやれば、予定が2005 年のデータ全部一気に削除できると思います。
(これでいいと思いますが,間違っていても責任は取れませんので,くれぐれもよくお調べになってから実行してください)

2008/07/03 16:17 Community User への返信

Automator を使えば出来そうな気がします。
カスタムワークフローを作ってカレンダーライブラリを選択、「iCal 項目を検索」をワークフローに加えて「開始日」などで条件を指定します。
これに「iCal イベントを削除」を繋げて実行すれば、目的を達成できるんじゃないでしょうか。
繰り返しイベントがどういう扱いになるのかなど不明な点もありますが、ファイルメニューから「iCal のバックアップを作成」しておけば失敗しても復元できますし、結果を見ながら微調整すればなんとかなると思います。

このスレッドはシステム、またはAppleコミュニティチームによってロックされました。 問題解決の参考になる情報であれば、どの投稿にでも投票いただけます。またコミュニティで他の回答を検索することもできます。

過去のイベントを一括消去するには?

Apple サポートコミュニティへようこそ
Apple ユーザ同士でお使いの製品について助け合うフォーラムです。Apple Account を使ってご参加ください。