GASでGoogleカレンダーの予定を変更・削除する方法!件名や開始日・終了日(時間)を修正

GoogleカレンダーをGoogle Apps Scriptで操作する際に、すでに作成済みの予定の件名や予定時間を変更したり、削除するやり方を解説します。

スプレッドシートとGoogleカレンダーを連携し、スプレッドシート側を修正した際にGoogleカレンダーにも修正を反映させたい場合に便利です。

Googleカレンダーとスプレッドシートの連携

Googleカレンダーとスプレッドシートを連携させたいユーザーは多いです。

Googleカレンダーはカレンダー形式でスケジュール管理がしやすいメリットがあります。

しかし、進捗管理の場合はスプレッドシートのように表形式の方が一覧性があり、条件に応じたフィルタ・ソートができるので便利です。

そのため、Googleカレンダーとスプレッドシートの両方で管理することが多いですが、両方手動で操作するのは手間がかかります。

スプレッドシート上で変更した内容がGoogleカレンダーにも反映され、予定が自動的に修正されると負担が軽減されます。

GASでGoogleカレンダーの予定を変更方法

Google Apps Script(GAS)には、Googleカレンダー上に作成済みの予定内容を変更するメソッドがあります。

変更するメソッドは、予定で設定している各要素ごとにsetメソッドが用意されています。

Googleカレンダーの予定で主要な3つの要素を変更するGASのメソッドは以下の通りです。

  1. 件名の変更:Event.setTitle('変更したいタイトル’)
  2. 時間の変更:Event.setTime('開始日’, '終了日’)
  3. 説明の変更:Event.setDescription('予定の説明’)

Googleカレンダーから取得した予定オブジェクトに対し、上記のメソッドを実行すると、件名や開始日/終了日、説明が上書きされます。

それによって、Google Apps ScriptでGoogleカレンダーにすでに存在している予定を変更・修正が可能です。

Googleカレンダー予定を変更するGASサンプルコード

実際にGoogle Apps ScriptでGoogleカレンダーで作成されている予定を変更する方法を解説します。

今回、Googleカレンダーにある赤枠の「GASイベント登録」という予定の件名と、開始日/終了日を変更してみます。

Googleカレンダーの予定を変更するGASサンプルコードを用意しました。

function modifyCalenderEvent() {
//アクセス可能なカレンダーのIDを指定して、Googleカレンダーを取得する
let myCalendar = CalendarApp.getCalendarById('***********@gmail.com');
//Googleカレンダーから取得するイベントの開始日(今日)を設定する
let startDate = new Date();
//Googleカレンダーから取得するイベントの終了日(1週間後)を設定する
let endDate = new Date();
endDate.setDate(startDate.getDate() + 7);
//開始日~終了日に存在するGoogleカレンダーのイベントを取得する
let myEvent = myCalendar.getEvents(startDate, endDate);
//取得した1つ目のイベントの件名を変更する
myEvent[0].setTitle("GAS件名変更");
//取得した1つ目のイベントの時刻を1週間後に変更する
myEvent[0].setTime(endDate,endDate);
}

まず、取得したいGoogleカレンダーのIDを取得した上で、指定した期間に存在するすべてのイベントを10行目で取得します。

※Googleカレンダーのイベント取得方法は以下の記事も併せて参照ください。

GASでGoogleカレンダーの予定を取得する方法!指定期間内のイベントを抽出

その後、setTitleで件名を変更し、setTimeで開始日と終了日を実行したタイミングに変更しています。

GASサンプルコードを実行した結果、Googleカレンダーの予定が移動していることが確認できます。

件名についてもGASのsetTitleに設定されたものに置き換わっていることが確認できました。

Googleカレンダーの予定削除はdeleteEvent

続いてGoogle Apps ScriptでGoogleカレンダーの予定を削除する場合、deleteEventメソッドを使用します。

Event.deleteEvent()

deleteEventは引数不要で、メソッドを実行したイベントオブジェクトを削除します。

このメソッドを実行することで、Googleカレンダーの予定をGASで削除可能です。

Googleカレンダー予定を削除するGASサンプルコード

先程の予定変更と同じように、赤枠部分のGoogleカレンダーの予定を削除する手順を解説します。

Googleカレンダーから取得した1つ目の予定を削除するサンプルコードです。

function delCalenderEvent() {
//アクセス可能なカレンダーのIDを指定して、Googleカレンダーを取得する
let myCalendar = CalendarApp.getCalendarById('gasworkproject@gmail.com');
//Googleカレンダーから取得するイベントの開始日(今日)を設定する
let startDate = new Date();
//Googleカレンダーから取得するイベントの終了日(1週間後)を設定する
let endDate = new Date();
endDate.setDate(startDate.getDate() + 7);
//開始日~終了日に存在するGoogleカレンダーのイベントを取得する
let myEvent = myCalendar.getEvents(startDate, endDate);
//取得した1つ目のイベントの件名を削除する
myEvent[0].deleteEvent();
}

予定変更とほとんど内容は同じですが、12行目にdeleteEvent()メソッドを記述しています。

GASサンプルコードを実行すると、9月20日に存在していた予定が削除することができました。

まとめ・終わりに

今回、Google Apps Script(GAS)でGoogleカレンダーの予定を変更(修正)、削除する方法を紹介しました。

Googleカレンダーの予定変更はGASにあるsetメソッドを利用し、setTitleで件名、setTimeで時間を修正します。

また、予定を削除したい場合は、deleteEventメソッドで実行可能可能です。

予定の修正や削除ができると、Googleカレンダーとスプレッドシートの自動連携ができるようになります。

スプレッドシートを変更するとGoogleカレンダーも反映されるようにスクリプトができます。

二重管理の負担が解消でき、業務効率化にもなるので、ぜひGoogleカレンダーの予定変更・削除をマスターしましょう。