2024-12-12

iCalendar形式ファイルを使ってGoogleカレンダーに一括登録したいが、アラームが設定されてしまう

Windows上でSchedule Watcherというスケジュール管理アプリケーションを利用しています。これで登録してあるスケジュールをGoogleカレンダーにも一括して登録したいと思います。iCalendar形式ファイルを使えば、Schedule Watcher側でエクスポートしたファイルをGoogleカレンダー側でインポートできましたので、これで解決かと思いました。

 

問題なのは、Googleカレンダー側で勝手にアラーム設定されてしまうことです。Googleカレンダーの設定にある「通知設定」で「通知」を「OFF」にしてあるのですが、iCalendarファイルを読み込む際にアラームが設定されてしまうようです。Schedule Watcherが出力したiCalendarファイルには「アラーム」に関する情報は入っていないので、Googleカレンダー側で親切に(?)アラームを設定しているようです。

 

Googleカレンダーのようなアプリケーションを操作するために「Google Apps Script」というものがあるようです。これを使えば、おそらく対処できるのでしょう。これまでGASを利用したことがないので、ちょっと敷居が高いです。


Googleカレンダー側からiCalendarファイルをエクスポートしてみると、「アラーム設定」の情報は「BEGIN:VALARM」から「END:VALARM」の間にあるようです。このような情報は、もちろん、Schedule Watcher側でエクスポートしたiCalendarファイルには入っていません。Googleカレンダーが出力したファイルには「ACTION:DISPLAY」とあり、その他にも「TRIGGER」なども指定されています。もしかすると、Schedule Watcherが出力したiCalendarファイルを加工して、無理矢理「BEGIN:VALARM」~「END:VALARM」を付け加えれば、Googleカレンダーにインポートしても、勝手にアラームが追加されることはないかもしれません。

 

それでは「ACTION」に何を設定すれば良いのでしょうか。参照できる資料がわかりませんが、「ACTION:NONE」とかではどうでしょうか。試しに、Schedule WatcherがエクスポートしたiCalendarファイルをエディタで編集し、次のようなものを付け加えてみました。これをGoogleカレンダーでインポートしてみましたが、エラーが出ることもなく、勝手にアラームが設定されることもないようです。

BEGIN:VALARM

ACTION:NONE

END:VALARM


ワークフローとしては、次のようになると思います。この方法なら、スケジュールをSchedule WatcherとGoogleカレンダーで同期できそうです。GoogleカレンダーからSchedule Watcherへの同期は考えていないのですが、スケジュールを変更した際には再同期が必要になります。ただし以前にGoogleカレンダーに登録したスケジュールが残っていると、再同期することで重複が生じてしまうので、この問題を解決しておかなければなりません。これはGASを使わないと解決できなさそうです。

  1. Schedule Watcher側でエクスポート
  2. iCalendar形式ファイルを加工(WSL2のUbuntu上でsedでも使おうかと思います。)
  3. Googleカレンダー側でインポート

0 件のコメント:

コメントを投稿