GASでGoogleカレンダーと連携してイベントの取得・追加・削除
Google Apps Scriptの勉強としてGoogleカレンダーと連携させ、登録されているイベントの取得・追加・削除を行いたい。また、JavaScriptで日付関連の処理をする際に、PHPよりも何かと面倒なのでライブラリで対応したい。以下に対応方法のメモ。
ライブラリの追加
「Day.js」というライブラリが良いらしい。以下スクリプトIDで追加する。
1ShsRhHc8tgPy5wGOzUvgEhOedJUQD53m-gd8lG2MOgs-dXC_aCZn9lFB
以下がリファレンス。
https://day.js.org/docs/en/parse/now
ソース
イベントの取得
//イベントの取得
function getCalendar(){
//ユーザのデフォルトカレンダーを取得
const calendar = CalendarApp.getDefaultCalendar();
//何日分のデータを取得するか
const count = 30;
//開始年月日
const start = dayjs.dayjs().toDate();
//終了年月日
const end = dayjs.dayjs().add(count, 'd').toDate();
//カレンダーに登録されているイベントを取得
const events = calendar.getEvents(start, end);
//1行ずつ出力
for(let event of events){
let tmp = '';
//日付
tmp += '日付:' + dayjs.dayjs(event.getStartTime()).format('YYYY-MM-DD');
//タイトル
tmp += ' | タイトル:' + event.getTitle();
//詳細
tmp += ' | 詳細:' + event.getDescription();
console.log(tmp);
}
}
イベントの追加
//イベントの追加
function setCalendar(){
//ユーザのデフォルトカレンダーを取得
const calendar = CalendarApp.getDefaultCalendar();
//タイトル
const title = 'イベントタイトル';
//開始日時
const start = dayjs.dayjs().toDate();
//終了日時
const end = dayjs.dayjs().toDate();
const option = {
//詳細
description : "イベント詳細\n改行\nイベント詳細",
};
//時間指定で追加する場合
calendar.createEvent(title, start, end, option);
//終日指定で追加する場合
const date = dayjs.dayjs().toDate();
calendar.createAllDayEvent(title, date, option);
}
「○月○日14~16時」のように時間指定をする場合は「calendar.createEvent」を、終日指定の場合は「calendar.createAllDayEvent」でイベント追加する。
イベントの削除
//イベントの削除
function deleteCalendar(){
//ユーザのデフォルトカレンダーを取得
const calendar = CalendarApp.getDefaultCalendar();
//何日分のデータを取得するか
const count = 30;
//開始年月日
const start = dayjs.dayjs().toDate();
//終了年月日
const end = dayjs.dayjs().add(count, 'd').toDate();
//カレンダーに登録されているイベントを取得
const events = calendar.getEvents(start, end);
//1行ずつ出力
for(let event of events){
let title = event.getTitle();
//タイトルに「test」を含む場合は削除
if( title.indexOf('test') >= 0 ){
event.deleteEvent();
}
}
}
「event.deleteEvent」関数には引数が指定できない模様。なので「タイトルが○○の場合」や「イベントラベルの色が○○の場合」等、条件分岐で削除する形になりそう。
所感
カレンダーとの連携よりも日付処理であったり、日付形式の指定が非常に面倒だった。ここら辺はもうちょっと慣れていかないといけないかも。
関連記事
-
-
GASで特定サイトにログインした後にスクレイピングを行う方法
Google Apps Scriptの勉強として特定サイトにログインし、その後に ...
-
-
GASとDrive APIを組み合わせて画像やPDFファイルをOCR処理する方法
Googleドライブに保存した画像やPDFファイルをOCR処理し、ファイル内のテ ...
-
-
GoogleスプレッドシートとPHPを連携させデータを取得・追記する方法
GoogleスプレッドシートとPHPプログラムを連携させたいという案件をたまに見 ...
-
-
GASとLINEを連携させて通知メッセージを送る方法のメモ
Google Apps ScriptとLINEを連携させ、LINEに何らかの通知 ...
-
-
GASとAdSense Management APIを使って前日分の売り上げをメール通知する方法
Googleアドセンスの売り上げをチェックする際、いつもはアドセンスの管理画面に ...