LoginSignup
5
8

More than 1 year has passed since last update.

【GAS】Google Calendarの予定の取得・追加・削除

Last updated at Posted at 2020-05-02

はじめに

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();
  }
}

おわりに

今回は超基本的な内容でしたが、
これらとスプレッドシートを組み合わせることで、予定の作成、確認、削除が簡単にできます!
後日紹介します。

書きました!

5
8
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
8