Google Apps Script (GAS) を使用して Googleスプレッドシートのデータを基に Google カレンダーにイベントを追加する一連の手順を紹介します。あらかじめスプレッドシートにはイベントのタイトル、開始日時、終了日時がリストされているとします。
ステップ 1: スプレッドシートの準備
- Google スプレッドシートを開き、3列(タイトル、開始日時、終了日時)を用意します。
- 各行にイベントのデータを入力します。
ステップ 2: Google Apps Script の作成
- スプレッドシートのメニューから「拡張機能」>「Apps Script」を選択します。
- 下記のスクリプトをコピーして Apps Script のエディタに貼り付けます。
このプロセスの詳細は、こちらのページを確認してください。
// 関数 `addEventsToCalendar` の定義を開始
function addEventsToCalendar() {
// 現在アクティブなスプレッドシートを取得し、そのアクティブなシートを変数 `sheet` に格納
var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
// シート内のすべてのデータ範囲を取得し、その値(2次元配列)を `rows` に格納
var rows = sheet.getDataRange().getValues();
// デフォルトのカレンダーを取得し、変数 `calendar` に格納
var calendar = CalendarApp.getDefaultCalendar();
// ループを開始。1行目はヘッダー行として扱うため、2行目から処理を開始(i = 1)
for (var i = 1; i < rows.length; i++) {
// 現在の行のデータを `row` に格納
var row = rows[i];
// 行の最初の要素(0番目の列)をイベントのタイトルとして取得
var title = row[0];
// 行の2番目の要素(1番目の列)を開始日時として取得し、Date オブジェクトに変換
var startTime = new Date(row[1]);
// 行の3番目の要素(2番目の列)を終了日時として取得し、Date オブジェクトに変換
var endTime = new Date(row[2]);
// 取得したタイトル、開始日時、終了日時を使用して、カレンダーに新しいイベントを作成
calendar.createEvent(title, startTime, endTime);
}
}
ステップ 3: スクリプトの実行
- Apps Script のエディタで「実行」ボタンをクリックし、
addEventsToCalendar
関数を選択します。 - 初めてスクリプトを実行する場合は、Google による認証が必要になります。画面の指示に従って認証を完了させてください。
このスクリプトを実行すると、次のようにGoogleカレンダーに、スプレッドシートに書いた予定が反映されます。
主な Google カレンダー操作関数
以下に列挙するGoogleカレンダーの操作関数を使えば、さらに高度なプログラムを作ることができるので、参考までに。
- イベントの追加
createEvent(title, startTime, endTime, options)
- イベントをカレンダーに追加します。
title
はイベントのタイトル、startTime
とendTime
はDate
オブジェクトで、イベントの開始と終了時刻を指定します。options
は任意のパラメータを含むオブジェクトで、場所や説明などを設定できます。
- イベントの検索
getEvents(startTime, endTime)
- 指定した期間内のイベントを取得します。
startTime
とendTime
はDate
オブジェクトで、検索する期間の開始と終了時刻を指定します。
- イベントの更新
- GAS は直接「イベントを更新する」関数を提供していませんが、
getEvents
で取得したイベントオブジェクトを通じて、setTitle
、setTime
、setDescription
などのメソッドを使用してイベントの詳細を更新できます。
- GAS は直接「イベントを更新する」関数を提供していませんが、
- イベントの削除
- イベントオブジェクトには
deleteEvent
メソッドがあり、これを使用してイベントを削除できます。
- イベントオブジェクトには