GASで一括!Googleカレンダーリソースの作成方法

 2024.12.12 Mio Shimaoka

 

はじめに

こんにちは!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カレンダーリソースの情報を入力するスプレッドシートの事前準備を行います。

  1. 新規スプレッドシートを作成し、ヘッダー行に値を設定します。
    見やすさのために、背景色や文字の太さを変えています。
    ヘッダーの並びは左から、前述した前提条件の順番と同様です。



  2. ヘッダー行の下に、今回作成するカレンダーリソースの情報を入力します。



Google App Script

続いて、GASを作成します。

  1. 先程作成したスプレッドシートの画面上部から、「拡張機能」>「Apps Script」を選択します。



  2. GASのコード編集画面が表示されます。
    下記の図の赤枠部分にコードを記述していきます。



  3. 記述するコードは以下です。


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

    コピー&ペーストをすると、このような状態です。



  4. エディタ画面の左部にて、「サービス」>「Admin SDK API」>「directory_v1」> 「追加」を選択してください。



    「AdminDirectory」が追加されます。



  5. エディタ画面の保存が完了していることを確認後、スプレッドシートを再読み込みしてください。
    再読み込みをすると、上部に「カスタムメニュー」が表示されます。

GAS実行

作成したGASを実行し、カレンダーリソース作成処理を行います。

  1. スプレッドシート上部にて、「カスタムメニュー」>「カレンダーリソース作成」を選択してください。



  2. 以下のポップアップ画面が表示された場合は、右下の「OK」を選択してください。



  3. 続いて、GASを実行するアカウント(カレンダーリソース作成権限のあるアカウント)を選択してください。



  4. 続いて、「許可」を選択してください。



  5. 表示されたスプレッドシート画面にて、再度上部の「カスタムメニュー」>「カレンダーリソース作成」を選択し、GASを実行します。



  6. 以下のポップアップ画面が表示され、カレンダーリソースの作成が正常に終了したことが確認できました。



作成したカレンダーリソースの確認

作成したカレンダーリソースをGoogleカレンダーとGWS管理コンソールから確認してみます。

Googleカレンダー

スプレッドシートに入力したカレンダーリソースが複数作成されています。Googleカレンダーから予約も可能です。

GWS管理コンソール

設定した内容で、カレンダーリソースが作成されています。

まとめ

今回は、Google Apps Script(GAS)を使ってGoogleカレンダーのカレンダーリソースを一括作成する方法をご紹介しました。手動では手間のかかるリソース登録も、GASを活用することで効率的に行うことが可能です。

ぜひこの記事が皆様のお役に立てれば幸いです。

今後は、Googleカレンダーリソースの更新・削除や、ビルディング情報の取得方法などを随時紹介していく予定です!

Google Cloud、Google Workspace に関するご相談はXIMIXへ!

Google Cloud、Google Workspaceに関する お問い合わせはこちら


GASで一括!Googleカレンダーリソースの作成方法

BACK TO LIST