はじめに
GASの始め方は前回紹介しました。
次はGoogle Calendarの予定を取得したりしてみましょう。
Google Calendarのクラス・メソッド一覧
基本的には、Calendar(カレンダー)に紐づく⇒Event(予定)に紐づく⇒CreatorやGuestなど(作成者や招待者)クラスが用意されていて、それぞれにメソッドがあります。
このサイトに非常によくまとまっています。
今回は使っていきながら紹介します。
Google Calendarの予定を取得する
予定の取得はGoogle Calendarのメールアドレスから取得することができます。
CalendarApp.getCalendarById()
でカレンダーの取得。
取得したカレンダーに対してgetEventsForDay(date)
でdate
の1日の予定を取得でき、期間を指定する際はgetEvents(startDate, endDate)
を使って開始日と終了日を指定できます。
date=new Date()
の引数を空欄にしておけば実行した時間が返ってきます。当日の予定の取得はそのまま空欄でいいですね。
function getCalendarEvent(){
// カレンダーの予定を取得する
var id = 'メールアドレス';
var cal = CalendarApp.getCalendarById(id);
var date = new Date('日時');
var events = cal.getEventsForDay(date);
Logger.log(events);
if(events.length==0) Browser.msgBox("予定はありません");
}
Google Calendarの予定を追加する
追加の際には基本的に自分がログインできているメールアドレスでないと許可が出ません。注意してください。
メールアドレスからカレンダーを取得する部分までは予定の取得の部分と一緒で、予定を追加する際のcreateEvent()
メソッドの引数は、title, startTime, endTime, optionとなっています。
さらに、option
内にはdescription,guests,location,sendInvitesとなっています。
基本的に英語の通りですが以下のソースコードに説明を書いておきます。
function createEvent() {
var id = 'メールアドレス';
var cal = CalendarApp.getCalendarById(id);
var title = '予定のタイトル';
var startTime = '開始時刻';
var endTime = '終了時刻';
var option = {
description : '説明',
guests : '招待する人のメールアドレス、複数人の場合は","区切り',
location : '場所',
sendInvites : 'true/false(招待メールを送るか否か)'
}
cal.createEvent(title, startTime, endTime, option);
}
Google Calendarの予定を削除する
メールアドレスからカレンダーを取得する部分までは予定の取得の部分と一緒で、予定の削除にはEventクラスのdeleteEvent
メソッドを使います。引数はありません。
以下コードは指定した日付のすべての予定を削除します。
function deleteEvent() {
var id = 'メールアドレス';
var cal = CalendarApp.getCalendarById(id);
var date = new Date('日付');
var events = cal.getEventsForDay(date);
for (var i in events) {
var event = events[i];
event.deleteEvent();
}
}
おわりに
今回は超基本的な内容でしたが、
これらとスプレッドシートを組み合わせることで、予定の作成、確認、削除が簡単にできます!
後日紹介します。
書きました!