毎日の天気を事前に把握できれば、通勤や外出、イベント準備の効率が大幅に上がります。
しかし、毎回天気アプリを開いて確認するのは面倒です。
そこで本記事では、Google Apps Script(GAS)で天気予報APIを取得し、自動的にGoogleカレンダーに登録する仕組みを紹介します。
これにより「明日の天気」が予定表に追加され、自然にスケジュールと一緒に確認できるようになります。
利用するのは「OpenWeatherMap API」です。無料で使えますが以下の制限があります。
- 無料プランでは 60リクエスト/分 まで
- 取得できるのは「現在の天気」と「5日間の3時間ごとの予報」まで
- 商用利用や大量アクセスには有料プランが必要
本記事では「翌日の天気」を登録する用途なので、無料プランで十分対応可能です。
リクエスト例:
https://api.openweathermap.org/data/2.5/weather?q=Tokyo&appid=YOUR_API_KEY&units=metric&lang=ja
まずは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カレンダーに登録します。
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);
}
このコードを実行すると、翌朝のカレンダーに天気が予定として追加されます。
最後に、スクリプトを自動実行するトリガーを設定します。
- スクリプトエディタの「トリガー」を開く
- 関数に
addWeatherToCalendar
を選択 - 実行タイミングを「時間主導型」→「日付ベース」→「午前6時」に設定
これで毎日、翌日の天気が自動的にGoogleカレンダーに追加されます。
本記事では、GASを使って天気予報APIを取得し、Googleカレンダーに自動登録する方法を紹介しました。
これにより、自然とスケジュールと一緒に天気を確認できるようになり、外出準備がスムーズになります。
応用すれば「週間予報をイベントとしてまとめて登録」や「特定のイベントに天気を追記」なども可能です。
また、APIの仕様変更やうまく動作しないなどがありましたら、遠慮なくコメントまでお寄せください!