【コピペで使える】GASでカレンダーに繰返しの終日予定を作成してみる

icon_for_CalendarApp_ createAllDayEventSeries
URLをコピーする
URLをコピーしました!

このページでは、繰り返しの終日予定を作成するcreateAllDayEventSeries()の使い方を紹介します。

Googleが提供しているGASに関する公式リファレンスはとても詳しく書いてあるのですが、英語のみの提供のためハードルが高く感じる人も少なくないと思います。そのハードルを少しでも低くし、より多くの人にGoogle Apps Scriptを使えるようになってもらいたいという思いから日本語のリファレンスページを用意しました。

目次

繰り返しの終日予定を作成するメソッド — createAllDayEventSeries

コピペで使えるサンプルコードを参照したい方はこちらをクリックすればサンプルコードまでジャンプできますので、手っ取り早くコードを確認したい方はクリックしてください。

今回は、GASを使ってカレンダーに繰り返しの終日予定を作成する方法を教えていきたいと思います。今回は、繰り返しのルールを設定する必要があるため、本投稿と合わせて下記の記事も見ていただいたほうがいいかと思います。

【GAS】CalendarAppで繰り返し予定のルールを作るnewRecurrenceメソッド
【GAS】CalendarAppのRecurrenceRuleクラスのメソッドを解説
【GAS】CalendarAppのEventRecurrenceクラスのメソッドを解説

上記のメソッドで、繰返し予定のルールを作成して、予定作成時にルールを適用する形で繰り返し予定を作成することができます。

それでは、早速コードの具体的な説明に入ります。

  1. createAllDayEventSeries(title, startDate, recurrence)
  2. createAllDayEventSeries(title, startDate, recurrence, options)

『 引数に入れる値 』

  • title(予定のタイトル) — ダブルクォーテーションで囲んだ文字列
  • startDate(予定の開始日) — 日付オブジェクト
  • recurrence(繰り返しルール) — EventRecurrence設定
  • options(詳細オプション) — JSONオブジェクト
    • description — 予定の説明 (文字列)
    • location — 予定の場所 (文字列)
    • guests — ゲストのアドレス(文字列:ゲストを複数招待する場合には、カンマで区切る)
    • sendInvites — true / false

『 関連するメソッド 』

合わせて覚えたいカレンダー予定の操作に関するメソッド

createAllDayEventSeries(title, startDate, recurrence)サンプルコード

繰り返しの終日予定を作成する基本的なコードから紹介します。

繰り返しの終日予定を作成するサンプルコード ①
//デフォルトカレンダーにtitleに代入した予定タイトルでstartDateに指定した日付から繰り返しの終日予定を作成するコード
function sampleCodeForCreateAllDayEventSeries1() {
  let calendar = CalendarApp.getDefaultCalendar();
  let title = "予定のタイトル";
  let startDate = new Date();
  let endDate = new Date();
  endDate = new Date(endDate.setMonth(endDate.getMonth() + 1));
  let recurrence = CalendarApp.newRecurrence()
                              .addWeeklyRule()
                              .onlyOnWeekday(CalendarApp.Weekday.WEDNESDAY)
                              .until(endDate);
  calendar.createAllDayEventSeries(title, startDate, recurrence);
}

『 変数の説明 』

calendar = アカウントのデフォルトカレンダーを取得
title = 予定タイトルに設定される文字列をダブルクォーテーションで代入
startDate = 繰り返し予定の開始日を指定
recurrence = 繰り返しルールを指定
※サンプルコードでは、繰り返しルールをプログラム実行日から1ヶ月後の日付までの水曜日に毎週繰り返すという繰り返しルールを適用して予定を作成しています。

デフォルトカレンダーに繰り返しの終日予定を作成するサンプルコード 』に上記サンプルスクリプトを記載したスクリプトがあります。
スクリプトを実行するとGoogleカレンダーにタイトルに指定した予定名でプログラム実行日から1ヶ月までの毎週水曜日に予定が作成されます。

createAllDayEventSeries(title, startDate, recurrence, options)サンプルコード

オプションのパラメーターを設定して繰り返しの終日予定を作成するコードを紹介します。

繰り返しの終日予定を作成するサンプルコード ②
//デフォルトカレンダーにtitleに代入した予定タイトルでstartDateに指定した日付から繰り返しの終日予定を作成するコード
function sampleCodeForCreateAllDayEventSeries2() {
  let guests = ["guestAddress1", "guestAddress2", "guestAddress3"];//実際の使用時はゲストアドレスを変更してください。
  let calendar = CalendarApp.getDefaultCalendar();
  let title = "予定のタイトル";
  let startDate = new Date();
  let endDate = new Date();
  let recurrence = CalendarApp.newRecurrence()
                              .addWeeklyRule()
                              .onlyOnWeekday(CalendarApp.Weekday.WEDNESDAY)
                              .until(endDate);
  let options = {
    description: "友達と待ち合わせ",
    location: "新宿駅東口",
    guests: guests.join(), 
    sendInvites: true
  }
  calendar.createAllDayEventSeries(title, startDate, recurrence, options);
}

『 変数の説明 』

calendar = アカウントのデフォルトカレンダーを取得
title = 予定タイトルに設定される文字列をダブルクォーテーションで代入
startDate = 繰り返し予定の開始日を指定
recurrence = 繰り返しルールを指定
options = 細かい内容を指定して予定を作成できます。

こちらも、『 デフォルトカレンダーに繰り返しの終日予定を作成するサンプルコード 』にスクリプトを用意してあります。
開始日と終了日は先程と同じですが、オプション設定を適用させるようにしてありますので、予定の詳細情報、場所、ゲストを招待した形で繰り返し予定を作成します。オプションは必要なものをオブジェクト形式に格納して引数として渡しますが、必要のないものはコメントアウトか対象の行を削除してください。

まとめ

createAllDayEventSeries()の解説はいかがでしたでしょうか?

英語ではハードルが高いと思っていたことも日本語で読むとそれほど難しくないですよね。今回のメソッドは繰り返しルールの作成が必要となりますので、合わせて覚える必要はありますが、身につけてしまえば処理の幅が広がりますね。

icon_for_CalendarApp_ createAllDayEventSeries

この記事が気に入ったら
いいね または フォローしてね!

よかったらシェアしてね!
URLをコピーする
URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

初心者でもわかるGoogle Apps Script活用のススメの管理人。
業務でラクをするという邪な目的のためにプログラムを独学で勉強し始め、初心者向けのGoogle Apps Scriptの使い方サイトを運営するに至る。
ラクをするためにはどんな苦労も厭わないという考えから、手っ取り早くスキルアップするためにCrowdWorksやLancersなどで仕事を受注し始め、過去にはTopClass PRO Crowd workerに認定された経験を持つ。
現在では、業務効率化システムの開発を行う会社の代表を務める。

コメント

コメント一覧 (2件)

コメントする

目次
トップへ
目次
閉じる