はじめに
こんにちは!XIMIXの島岡です。
本記事はNI+C TeamGCP Advent Calendar 2024の12日目の記事となります。
今回は、Google Apps Script(GAS)を使って、Googleカレンダーのリソースを効率的に一括作成する方法をご紹介します。
手動でリソースを追加・管理するのは時間がかかり、ミスが発生しやすいものです。
GASを利用することで、複数のリソースを一括で作成・管理することが可能になり、業務の効率化につながります。
では早速、GASを使ったカレンダーリソースの効率的な作成方法について見ていきましょう!
Googleカレンダーリソースとは
Googleカレンダーリソースとは、Googleカレンダー上の「予約可能な共有リソース」のことです。
たとえば、会議室やプロジェクター、社用車など、複数の人が共有して使う設備や備品、施設をリソースとして登録することで、予約の管理を簡単に行うことができます。
これを利用することで、Googleカレンダー上でリソースの空き状況を確認しながらスムーズに予約ができ、重複予約を防ぐことができます。
参考:カレンダー リソースとは
作成方法
では早速、作成方法を見ていきましょう!
使用するもの
- Googleカレンダーリソース作成権限のあるGoogleアカウント
- Google App Scriptプロジェクト
- Googleスプレッドシート(カレンダーリソース情報の入力で使用)
前提条件
今回設定するカレンダーリソースの項目
参考:REST Resource: resources.calendars
- resourceID:カレンダーリソースの一意のID
- resourceName:カレンダーリソースの名称
- buildingId:リソースが存在する建物の一意のID
- resourceCategory:カレンダーリソースのカテゴリ
- floorName:リソースが配置されている階の名称
- capacity:リソースの収容人数
パラメータ等の詳細は、上記参考リンクをご確認いただき、適宜ご自身の用途に合わせてGASの内容を変更してください。
注意点
- resourceID:既に登録されているリソースと同じIDでの新規登録はできない
- buildingId 、 floorName:既にGoogleカレンダーにて登録されているビルの情報を指定する
上記については、GWS管理コンソール画面などで確認してください。
設定・準備
Googleスプレッドシート
はじめに、Googleカレンダーリソースの情報を入力するスプレッドシートの事前準備を行います。
- 新規スプレッドシートを作成し、ヘッダー行に値を設定します。
見やすさのために、背景色や文字の太さを変えています。
ヘッダーの並びは左から、前述した前提条件の順番と同様です。 - ヘッダー行の下に、今回作成するカレンダーリソースの情報を入力します。
Google App Script
続いて、GASを作成します。
- 先程作成したスプレッドシートの画面上部から、「拡張機能」>「Apps Script」を選択します。
- GASのコード編集画面が表示されます。
下記の図の赤枠部分にコードを記述していきます。 - 記述するコードは以下です。
const SPREADSHEET_ID = 'your_spreadsheet_id'; // スプレッドシートIDを入力
const SHEET_NAME = 'シート1'; // シート名を入力
// 初期化関数
function onOpen() {
const ui = SpreadsheetApp.getUi();
// カスタムメニューを作成
ui.createMenu('カスタムメニュー')
.addItem('カレンダーリソース作成', 'createCalendarResourcesFromSheet')
.addToUi();
}
// カレンダーリソースのデータをスプレッドシートから読み込んで作成
function createCalendarResourcesFromSheet() {
const spreadSheet = SpreadsheetApp.openById(SPREADSHEET_ID);
const sheet = spreadSheet.getSheetByName(SHEET_NAME);
const data = sheet.getDataRange().getValues();
for (let row = 1; row < data.length; row++) {
const rowData = data[row];
const resourceId = rowData[0];
const resourceName = rowData[1];
const buildingId = rowData[2];
const resourceCategory = rowData[3];
const floorName = rowData[4];
const capacity = rowData[5];
createCalendarResource(resourceId, resourceName, buildingId, resourceCategory, floorName, capacity);
}
SpreadsheetApp.getUi().alert('カレンダーリソースの作成が完了しました'); // 完了メッセージの表示
}
// カレンダーリソース作成関数
function createCalendarResource(resourceId, resourceName, buildingId, resourceCategory, floorName, capacity) {
const calendarResource = {
resourceId: resourceId,
resourceName: resourceName,
buildingId: buildingId,
resourceCategory: resourceCategory,
floorName: floorName,
capacity: capacity
};
AdminDirectory.Resources.Calendars.insert(calendarResource, 'my_customer');
}
コピー&ペーストをすると、このような状態です。 - エディタ画面の左部にて、「サービス」>「Admin SDK API」>「directory_v1」> 「追加」を選択してください。
「AdminDirectory」が追加されます。 - エディタ画面の保存が完了していることを確認後、スプレッドシートを再読み込みしてください。
再読み込みをすると、上部に「カスタムメニュー」が表示されます。
GAS実行
作成したGASを実行し、カレンダーリソース作成処理を行います。
- スプレッドシート上部にて、「カスタムメニュー」>「カレンダーリソース作成」を選択してください。
- 以下のポップアップ画面が表示された場合は、右下の「OK」を選択してください。
- 続いて、GASを実行するアカウント(カレンダーリソース作成権限のあるアカウント)を選択してください。
- 続いて、「許可」を選択してください。
- 表示されたスプレッドシート画面にて、再度上部の「カスタムメニュー」>「カレンダーリソース作成」を選択し、GASを実行します。
- 以下のポップアップ画面が表示され、カレンダーリソースの作成が正常に終了したことが確認できました。
作成したカレンダーリソースの確認
作成したカレンダーリソースをGoogleカレンダーとGWS管理コンソールから確認してみます。
Googleカレンダー
スプレッドシートに入力したカレンダーリソースが複数作成されています。Googleカレンダーから予約も可能です。
GWS管理コンソール
設定した内容で、カレンダーリソースが作成されています。
まとめ
今回は、Google Apps Script(GAS)を使ってGoogleカレンダーのカレンダーリソースを一括作成する方法をご紹介しました。手動では手間のかかるリソース登録も、GASを活用することで効率的に行うことが可能です。
ぜひこの記事が皆様のお役に立てれば幸いです。
今後は、Googleカレンダーリソースの更新・削除や、ビルディング情報の取得方法などを随時紹介していく予定です!
Google Cloud、Google Workspace に関するご相談はXIMIXへ!
Google Cloud、Google Workspaceに関する お問い合わせはこちら
- カテゴリ:
- Google Workspace
- キーワード:
- Google Cloud