先日、固定資産税の支払いを忘れていて督促状をもらってしまいました。発電所と不動産の数だけ固定資産税の支払いが必要で、さらにそれは年4回。実に32回もの税金の支払い締め切りがあります。これを忘れずに管理できないでしょうか?
ぼくはさまざまなデータをGoogleスプレッドシートで、予定はGoogleカレンダーで管理しています。ということは、Googleが提供する簡易プログラムツール「Google App Script(GAS)」を使えば、スプレッドシートからカレンダーに予定を登録することもできそうです。
JavaScriptちっくに記述できるGAS
GASについてはたくさんのコンテンツがあるのでそれを調べてもらうとして、ざっくりいうと下記のような特徴があります。
- Googleドキュメント、スプレッドシート、カレンダー、Gmailなどを操作できる
- シートを「開いたら」「メニューを選んだら」「1日おき」「1時間おき」など、さまざまな実行トリガーが設定できる
- 独自の関数を定義して、スプレッドシートで使うこともできる
完全にサーバサイドで動作して料金も無料。しかも定期実行も可能とあって、いろいろな可能性が広がります。記述言語はだいたいJavaScriptで、慣れればサクサクと書けるのも魅力です。
ということで、Googleスプレッドシートのデータを読み取って、それをGoogleカレンダーに登録するGASを書けるのは容易に想像できますね。
Googleカレンダーに予定を入れる
さっとググると、さっそく下記のページが見つかりました。カレンダーオブジェクトにメソッドを投げてあげれば、それだけで登録できます。簡単ですね。あとは、スプレッドシートからデータを取得して、それを変数に入れてメソッドを実行すればいいわけです。
ただ、もう少し調べると、まさにそのものズバリの解説記事がありました。スプレッドシートに記載されたデータを、カレンダーに登録するGASです。スクリプトも付いているので、GASを登録して実行すれば、スプレッドシートのデータがカレンダーに登録されることが確認できます。
となれば、あとはこのスクリプトを修正して、望む姿に変えるだけです。
税金の情報をカレンダーに
用意したシートは次のような形。スクリプトを見ると、縦横の列番号でデータを取得しているので、カラム名は変更しても問題ありません。
スクリプトの中身では、Descriptionに金額を入れるようにして、単位の「円」が入るように、下記のように円を足してあげました。
var options = {location: contents[i][locationCellNum], description: contents[i][descriptionCellNum]+"円"};
メニューに追加された「カレンダー連携」から「実行」を押すと、「連携」カラムが「済」となっていないものがカレンダーに書き込まれる仕様です。いったん書き込まれると、連携カラムは「済」に変わります。
もう少しいろいろいじってもいいのですが、これで必要十分の動作です。ちなみに、シートを移動してもそのまま動作するので、使い勝手もいいですね。
税金だけでなく優待券の使用期限も
このあと予定しているのは、税払いのスケジュールだけでなく、優待券の使用期限もカレンダーに自動登録することです。優待券を失効させてしまったことが何度かあり、これはちゃんと管理しなくてはダメだ……と思い知っています。
今回スプレッドシートに記載したデータを、自動的にGoogleカレンダーに登録する方法を得たので、これを存分に活用したいと思っています。