GoogleAppsScriptを使って自動でgoogleCalendarに予定を登録する方法

GoogleAppsScript
スポンサーリンク

始めに

目的

今回もGoogleAppsAcriptを使ってプログラミングをしていきます。その中でもGoogleカレンダーと連携する基本的な方法をご紹介します。

毎月1日にその日の指定した日付(今回は25日)に「〇月の家賃を渡す」という予定を自動で登録します。

きっかけ

友達と同居していて毎月家賃を渡さなきゃいけないのですが、その日付をいつも忘れてしまっていました(-_-;)

そこでお互いのスケジュールをGoogleカレンダーで把握していたので、家賃を渡す日付などの毎月日付が固定されているイベントを自動で登録してしまおう!ということでGoogleAppsScriptのトリガーを使って登録することにしました。

手順

大まかな手順はここでご説明します。

  1. 登録したいGoogleカレンダーのIDを設定する。
  2. その月の日付を指定してAPIでイベントを登録する。
  3. 毎月の1日に起動するように設定する。

実装方法(コード)

まずは完成のコードです。

function createEvents() {
  // デフォルトのカレンダーを取得
  var calendar = CalendarApp.getDefaultCalendar();
  //必要な日付データを作る
  var date = new Date();
  var startDate = new Date(date.setDate(date.getDate() + 24));
  var endDate = new Date(date.setDate(date.getDate() + 1));
  var title = (date.getMonth() + 1) + '月の家賃を渡す';
  //APIで予定を登録する
  calendar.createAllDayEvent(title, startDate, endDate);
}

では詳細を順にご説明していきます。

前提としてGASを作成できるようにしておいてくださいね!まだの方はこちらを参考にしてみてください。

カレンダーのIDの取得

まずは、登録するカレンダーを識別する必要があります。

方法は2パターンあって、1つはデフォルトのカレンダーを取得する方法であり、もう一つはIDを指定して取得する方法です。

デフォルトのカレンダーとはGASを使っているアカウントと同じアカウントのGoogleカレンダーを設定します。こちらは自分のGoogleCalendarのみを使う場合に利用でき、設定が簡単です。

自分の別のアカウントや他人のカレンダーなどに登録する場合はIDで取得しなければいけないので、IDを知っている必要があります。

今回はデフォルトのカレンダーを取得しています。

  var calendar = CalendarApp.getDefaultCalendar();

もしIDで取得したい場合は以下のように書きます。

var calendar = CalendarApp.getCalendarById( カレンダーID );

カレンダーIDの部分は変更してください。

またカレンダーIDはGoogleCalendarの設定から「マイカレンダーの設定」で選んで、カレンダー IDに書いてあります。

APIでイベントを登録する

次は予定(イベント)を登録します。コードでいうとこの部分です。

var date = new Date();
  var startDate = new Date(date.setDate(date.getDate() + 24));
  var endDate = new Date(date.setDate(date.getDate() + 1));
  var title = (date.getMonth() + 1) + '月の家賃を渡す';
  calendar.createAllDayEvent(title, startDate, endDate);

今回はcreateAllDayEvent(title, startDate, endDate, options)を使っています。引数の内容はこのようになっています。

今回はタイトルのみで内容がわかるのでoptionsは設定していません。

まずは開始日と終了日を取得します。このgasは毎月1日に実行する想定で25日に予定を登録したいので開始日は実行日の24日後とします。終了日はその翌日にするといい感じになります。

タイトルは「〇月の家賃を渡す」としたいので〇の部分に実行日の月を取得します。JavaScirptのDateオブジェクトのgetMonth()は1日ずれるので+1します。

Dateオブジェクトについて気になる方はこちらの記事でご紹介しているのでよければどうぞ。

開始日、終了日、タイトルがそろったのでcreateAllDayEventの引数に渡します。デバックして確認すると24日後に予定が登録されているはずです。

毎月自動で実行する

コードはできましたので、それを自動で実行するようにGASのトリガーを使って設定します。

トリガーの登録方法は「編集」から現在のプロジェクトのトリガーを開きます。

トリガーの設定画面が開くので「トリガーを追加」をクリックして、実行する関数に先ほど作ったcreateEventsを設定し、その他日付の項目を入力します。

これで毎月1日に自動で実行さるようになります。

最後に

今回は基本ということで家賃の支払い日を自動で登録しましたが、皆さんも自動で予定を設定したいと思います。APIをうまく使って予定管理を自動化しましょう!

GoogleCalendarのAPIは他にもいろいろできて便利なのでいろいろ調べてみてはいかがでしょうか。

公式のリファレンスはこちらです。

読んでいただきありがとうございます!

スポンサーリンク
GoogleAppsScriptプログラミング
スポンサーリンク
この記事を書いた人

フリーランスエンジニアです。
未経験からSIer企業に入社して開発案件でプログラミングを学び27歳でフリーランスになりました。
主にHTML,CSS,JavaScript,Javaを書いています。
本を読むことが好きなのでIT以外にもいろいろ読んでいます。
好奇心旺盛でとりあえずやってみる精神。
楽しいことが生きがいで、仕事も私生活も楽しくなるように日々奮闘中。
お酒を飲みすぎないことが目標

まさきをフォローする
シェアする
まさきのエンジニア図書館
タイトルとURLをコピーしました