【GAS】Google Apps Scriptで天気予報APIを取得し、Googleカレンダーに自動登録する方法

はじめに

毎日の天気を事前に把握できれば、通勤や外出、イベント準備の効率が大幅に上がります。
しかし、毎回天気アプリを開いて確認するのは面倒です。

そこで本記事では、Google Apps Script(GAS)で天気予報APIを取得し、自動的にGoogleカレンダーに登録する仕組みを紹介します。
これにより「明日の天気」が予定表に追加され、自然にスケジュールと一緒に確認できるようになります。

天気予報APIと利用制限について

利用するのは「OpenWeatherMap API」です。無料で使えますが以下の制限があります。

  • 無料プランでは 60リクエスト/分 まで
  • 取得できるのは「現在の天気」と「5日間の3時間ごとの予報」まで
  • 商用利用や大量アクセスには有料プランが必要

本記事では「翌日の天気」を登録する用途なので、無料プランで十分対応可能です。

リクエスト例:

https://api.openweathermap.org/data/2.5/weather?q=Tokyo&appid=YOUR_API_KEY&units=metric&lang=ja

GASで天気データを取得する

まずはGASで天気データを取得します。

function getWeather() {
  var apiKey = "YOUR_API_KEY";
  var city = "Tokyo";
  var url = "https://api.openweathermap.org/data/2.5/weather?q=" 
            + city + "&appid=" + apiKey + "&units=metric&lang=ja";
  
  var response = UrlFetchApp.fetch(url);
  var data = JSON.parse(response.getContentText());
  
  var message = "天気: " + data.weather[0].description +
                " / 気温: " + data.main.temp + "℃" +
                " / 湿度: " + data.main.humidity + "%";
  
  return message;
}

Googleカレンダーに予定を登録するコード例

次に、取得した天気をGoogleカレンダーに登録します。

function addWeatherToCalendar() {
  var calendar = CalendarApp.getDefaultCalendar();
  var weatherMessage = getWeather();
  
  // 翌日の午前7時に予定を登録
  var tomorrow = new Date();
  tomorrow.setDate(tomorrow.getDate() + 1);
  tomorrow.setHours(7, 0, 0);
  
  var end = new Date(tomorrow);
  end.setHours(8, 0, 0); // 1時間枠
  
  calendar.createEvent("【天気予報】" + weatherMessage, tomorrow, end);
}

このコードを実行すると、翌朝のカレンダーに天気が予定として追加されます。

トリガーを設定して毎日自動化

最後に、スクリプトを自動実行するトリガーを設定します。

  1. スクリプトエディタの「トリガー」を開く
  2. 関数に addWeatherToCalendar を選択
  3. 実行タイミングを「時間主導型」→「日付ベース」→「午前6時」に設定

これで毎日、翌日の天気が自動的にGoogleカレンダーに追加されます。

おわりに

本記事では、GASを使って天気予報APIを取得し、Googleカレンダーに自動登録する方法を紹介しました。
これにより、自然とスケジュールと一緒に天気を確認できるようになり、外出準備がスムーズになります。

応用すれば「週間予報をイベントとしてまとめて登録」や「特定のイベントに天気を追記」なども可能です。

また、APIの仕様変更やうまく動作しないなどがありましたら、遠慮なくコメントまでお寄せください!

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です