2013年4月16日火曜日

[Mountain Lion]iCloudに同期したiCalの重複イベントを削除するTIPS

先日iCalの昔のイベントを眺めていたら、
ある時点からカレンダーのイベントが重複している…。
ひどいと4重くらいになってるときもあった。
過去3年分のデータがあるので、手動で削除なんてやってられない!
……ってことでgoogle先生に聞いたらこれがでてきた。
名前からしてまさしくなアプリである。
こいつを立ち上げると下の画像みたいに自動で各カレンダーを読み込んでくれる。
「Test selected calender」を押せば重複を検索してくれるわけだ。楽チン。
検索し終えると下の方にボタンがでるのでそれを押せば重複が解消される。
ただまあひとつ問題があって。
OS10.6時代のアプリだからか、iCloudと同期してることを考慮されてないっぽい。
どういうことかというと、このアプリは重複を削除した後のカレンダーを、
バックアップファイルとして生成して、icalに復元させる方法をとってるみたいで。
iCloudのデータを直接いじってないってことらしい。(確証はない)
つまり、そのままほっておくとiCloudと同期して、重複状態に元通りってことに…
これは困った。

解決策を考えた結果。
要はiCloudと同期してるときにアプリを動かすのがいけないわけで、
一旦iCloudと切り離してからローカルで重複解消して、その状態のカレンダーをiCloudにあげ直してあげれば言いわけだ。
ただiCloudのアカウントと同期を外すだけじゃデータがネットに残ってしまうので、
一度全部削除する必要がある。
そこで画像みたいに、iCalの「書き出す」を使って各カレンダーを書き出してやる。(バックアップも兼ねる)
「カレンダーをアーカイブ」のほうが手間がないかと思ったんだけど、
後述する副次的な効果もあったので、普通に「書き出す」がおすすめかも。
で、iCalから全カレンダー消してもいいんだけど、データが多いとエラーを吐きやすいっぽい。
だからiCloud.comにブラウザでアクセスして、そこで直接消すのが確実かな。

iCloud上のデータが消えたら、iCalのアカウント設定からiCloudを削除。
あとは書き出した「〜.ics」ファイルをドラッグアンドドロップすれば各カレンダーが復元できる。
このとき、まとめてD&Dするとひとつのカレンダーに全イベントが追加されちゃうから、
個別にやるのが良さげ。

あとは「iCal Dupe Deleter」さんに全投げ〜。
先述の副次的な効果っていうのは、iCal上ではひとつに見えるカレンダーでも、
アプリ上で2つに分かれて扱われてるものがあって、正常に重複削除できなかったんだけど、
それが「〜.ics」に書き出す事でちゃんとひとつにまとまったわけ。

あとは通常のiCloudへの同期手順を踏めばおk。
重複削除後の各カレンダーを同様に「〜.ics」に書き出して、
iCloudに読み込ませる。(D&Dでいけた。)

これでカレンダーの重複削除完了!
最後の同期は時間がかかるから、放置で。
-----------------------------------------------------------
同期後にひとつだけカレンダーの名前が「(元の名前)2」になってた。
2を削ろうとしてもエラー音がして拒否されるから、
正常に削除されてないカレンダーがiCloudに残ってたのかも?
「iCal Dupe Deleter」で正常に扱えなかったのはこれのせいかも。
修正方法が分からなくて放置中。

0 件のコメント: