こんなことする方はあまりいないかもしれませんが、私が非常に困ったのでメモ書き。
- PCで、Googleカレンダーのデータをエクスポート(バックアップ)
- PCで、Googleカレンダーの全データを削除
- Android側で、アプリ→カレンダーの保存のデータを削除
- Android側で、アカウント→Googleカレンダーを同期(空データを同期)
- PCで、バックアップしたicsファイルをインポート
- Android側で、アカウント→Googleカレンダーを同期
<追記>
2012.12.29現在、上記方法でも1ヶ月以上前のデータを同期してくれないようです・・・
<再追記>
2013.1.20現在、旧データを含めて同期してくれることを確認しました!
<再々追記>
Google カレンダーをインストールすることで、本エントリの方法によることなく、過去1年分のデータを同期することが出来ます!
<追記ここまで>
今まではこの方法で同期できていたのですが、今回嵌ったのは5.の手順。
予定のインポートに失敗しました。 このファイルの予定のうち、以前 Google カレンダーにインポートされた予定は再度インポートされません。 それ以外の予定がインポートされました。。
ググってみると、どうやら2012年10月下旬あたりからこのようなエラーが発生しているようです。
この仕様は、重複データを登録しないようにGoogle側が配慮してくれた結果のようなのですが、全データを削除してインポートしても重複していると認識してしまうために起こるようです。
さて、ここからが本題。解決方法は2つあります。
A.新しいカレンダーを作成して、そこにインポートする
デフォルトである”予定一覧”にインポートできないなら、新しくカレンダーを作ってそこに書き込んでしまおうという作戦。
- ”あたらしい予定一覧”みたいな新規カレンダーを作成する
- 作成したカレンダーにインポートする
※この場合、Android側で新しく作成したカレンダーを同期することを忘れずに!また、今後作成する予定も新しく作成したカレンダーに登録するようにしたほうが良いでしょう。
B.icsファイルを弄る
icsファイル内の重複データ確認のためのidを削除して、「重複していないよ」とGoogle側に教えてあげようという作戦。
- インポートしたicsファイルをバックアップする
- インポートしたicsファイルを、Word(又はワイルドカード置換に対応したテキストエディタ)で開く(文字コードはUnicode UTF-8を選択)
- UID:hogehoge@gmail.comの、”hogehoge@gmail.com”部分を削除する(置換機能を使うと楽です)
※コメント欄に詳しい説明を頂いています
→UID:の行を全て削除してもOKです - 編集したicsファイルを”予定一覧”にインポートする
※この方法であれば、カレンダーを追加することなく対応できます。ただし、この方法は1度きりしか使えません。(当方で確認済み。恐らくUIDが空のものを登録済みと認識してしまうため)
この2つの方法は暫定的な対応です。Google側の対応を待ちたいと思います。