libro
www.tuyano.com
Google Apps Scriptプログラミング [中級編]

Calendar API v.3 によるカレンダーアクセス (5/5)

作成:2018-05-05 10:50
更新:2018-05-05 10:50

■イベントを作成する

では、イベントを新たに作成しカレンダーに追加するにはどうするのでしょうか。これは、Calendar.Eventsの「insert」というメソッドを使います。
Calendar.Events.insert( カレンダーID , イベント );

第1引数には、イベントを追加するカレンダーのIDを指定します。第2引数には、追加するイベントの情報をまとめたオブジェクトを指定します。このオブジェクトは、イベントに関する細かな値をまとめたもので、ざっと以下のような項目を用意します。
{
    "summary": サマリー,
    "singleEvents": 単独のイベントかどうか,
    "allDayEvent": 終日イベントかどうか,
    "location": 位置情報,
    "start": {
        日時の値
    },
    "end": {
        日時の値
    },
    "colorId": 色,
}
この中で必須となるのは、summarystartendでしょう。他は省略してもイベントは作成できます。singleEventsallDayEventは、イベントの性質に影響するものなので用意しておくべきでしょう。またlocationは、イベントに関する位置がなければ省略可です。

これらの中で注意が必要なのは、startendです。これらは、値として更にオブジェクトが設定されており、その中で日時の値を用意します。

これは、イベントが特定の日時のものか、終日イベント(時間を指定せず、その日一日イベントとして扱うもの)かによって用意する値が異なるためです。用意する値は以下のようになります。

・終日イベントの場合
"start": {
    "date": 日付,
},
"end": {
    "date": 日付,
},

・終日でない場合
"start": {
    "dateTime": 日時,
},
"end": {
    "dateTime": 日時,
},

終日イベントでは、dateプロパティに日付の値を用意します。そうでないイベントでは、dateTimeプロパティに日時の値を用意します。

以下に、簡単な利用例を挙げておきます。実行すると、今日の終日イベントとして、「★新しいイベント★」というものを追加します。面倒臭そうですが、リストの殆どはイベントオブジェクトの定義で、実行している処理はCalendar.Events.insertの一文のみであることがわかるでしょう。

※プログラムリストが表示されない場合

AddBlockなどの広告ブロックツールがONになっていると、プログラムリスト等が表示されない場合があります。これらのツールをOFFにしてみてください。

●プログラム・リスト●

function myFunction() {
  var calendarId = '……カレンダーID……';
  var dt = new Date(); // 日付を設定
  var date = dt.getFullYear() + '-' + (dt.getMonth() + 1) + '-' + dt.getDate();
  var event = {
    "summary": '★新しいイベント★',
    "singleEvents": true,
    "allDayEvent": true,
    "location": 'JR東京駅',
    "start": {
      "date": date ,
    },
    "end": {
      "date": date ,
    },
    "colorId": 1,
  };
  Calendar.Events.insert(event, calendarId);
}
※関連コンテンツ

「Google Apps Scriptプログラミング [中級編]」に戻る