Google カレンダーのインターフェースの構築

Google Workspace アドオンは、ユーザーがカレンダーやカレンダーの予定を表示または編集しているときに、カスタマイズしたインターフェースを提供します。これにより、ユーザーに追加の関連情報を提供し、タスクを自動化して、サードパーティのシステムを Google カレンダーに接続できます。

Google カレンダーのアドオン インターフェースを作成する際に、ホームページを提供できます。複数のホストで同じホームページを使用することも、Google カレンダー用に特定のホームページを設計することもできます。

このアドオンでは、ユーザーがカレンダーの予定を開いたときに表示されるインターフェースを定義することもできます。

アドオン UI へのアクセス

Google Workspace アドオンは、起動方法に応じて、ホームページのインターフェース、Google カレンダーの予定イベント インターフェース、添付ファイルの選択インターフェース、またはこの 3 つすべてを定義できます。

  • カレンダー ビューでユーザーがアドオン アイコンをクリックすると、対応する calendar.homepageTrigger 関数(存在する場合)が実行されます。この関数は、ホームページ カードを作成し、表示するカレンダーに返します。calendar.homepageTrigger 関数が定義されていない場合は、代わりに汎用のホームページ カードが表示されます。
  • ユーザーがカレンダーの予定を開き、アドオン アイコンをクリックしてアドオンが開くか、対応する eventOpenTrigger 関数(存在する場合)がアドオンで開かれます。この関数はアドオンのカレンダーの予定イベント インターフェースを作成し、表示するために Google カレンダーに戻ります。
  • eventAttachmentTrigger 関数を定義しているアドオンの場合、ユーザーがカレンダーの予定の編集中に [添付ファイルを追加] をクリックすると、アドオンは添付ファイル プロバイダとして表示されます。アドオンが選択されると、eventAttachmentTrigger 関数はアドオンの添付ファイル選択インターフェースを作成し、表示する Google カレンダーに返します。

アドオンのカレンダー インターフェースの構築

Google Workspace アドオンを使用して Google カレンダーを拡張する手順は次のとおりです。

  1. アドオンにカレンダー固有のホームページを割り当てるかどうかを決定します。また、ユーザーがカレンダーの予定を編集しているときにカスタム インターフェースを提供するかどうかも決定します。
  2. 必要なスコープを含む、適切な addOns.common フィールドと addOns.calendar フィールドをアドオン スクリプト プロジェクトのマニフェストに追加します。
  3. カレンダー固有のホームページを提供する場合は、calendar.homepageTrigger 関数を実装してこのインターフェースを作成します。また、複数の Google Workspace ホストに common.homepageTrigger インターフェースを使用することもできます。
  4. カレンダーの予定のインターフェースを提供する場合は、そのインターフェースを作成するために calendar.eventOpenTrigger 関数を実装する必要があります。詳しくは、カレンダーの予定の拡張をご覧ください。
  5. ボタンのクリックなど、ユーザーの UI 操作に応答するために必要な関連コールバック関数を実装します。

カレンダーのホームページ

Google カレンダーは、Google Workspace アドオンのホームページの表示に対応しています。 Google カレンダーにアドオンの一般的なホームページを表示するには、アドオンのマニフェストに addOns.calendar フィールドがあることを確認します。

または、calendar.homepageTrigger をアドオン マニフェストに追加して、カレンダー固有のホームページを提供します。

いずれの場合も、アドオンのスクリプト プロジェクトでホームページ トリガー関数の名前を指定する必要があります。この関数は、必要なときに Google カレンダーのホームページを作成するために自動的に呼び出されます。この関数は、単一の Card またはホームページを構成する Card オブジェクトの配列を構築して返す必要があります。ホームページのトリガー関数には、クライアントのプラットフォームなどの一般的な情報を含むパラメータとしてイベント オブジェクトが渡されます。イベント オブジェクト データを使用して、ホームページの構造を調整できます。

カレンダーの予定のインターフェースを拡張する

Google カレンダーは、ユーザーがカレンダーの予定を編集したときに表示するインターフェース(存在する場合)を決定する際に、コンテキスト トリガーを使用します。トリガーが発生すると、アドオン マニフェストcalendar.eventOpenTrigger フィールドで指定されたコンテキスト トリガー関数が実行されます。

calendar.eventOpenTrigger フィールドで指定された関数を実装する必要があります。この関数は、イベント オブジェクトを引数として受け取り、ユーザーがイベントを開いたときに表示する単一の Card オブジェクトまたは Card オブジェクトの配列を返す必要があります。

イベント オブジェクト

イベント オブジェクトが作成され、ユーザーがカレンダーの予定を開くと calendar.eventOpenTrigger コンテキスト トリガー関数に渡されます。トリガー関数は、このイベント オブジェクトの情報を使用して、アドオンカードの作成方法やアドオンの動作の制御方法を決定できます。また、アドオンを初めて開いたとき、またはユーザーがインタラクティブ ウィジェットをクリックまたは選択したときに、イベント オブジェクトが作成されて homepageTrigger 関数に渡されます。

イベント オブジェクトの完全な構造については、イベント オブジェクトをご覧ください。カレンダーがアドオンのホストアプリの場合、コンテキスト トリガーとウィジェット操作イベント オブジェクトには、カレンダー固有のクライアント情報を保持する Calendar event object フィールドが含まれます。

カレンダーの予定の更新

ユーザーが編集のためにカレンダーの予定を開いたときに呼び出されるコンテキスト上の calendar.eventOpenTrigger に加えて、ユーザーがカレンダーの予定を更新して保存したときに起動する calendar.eventUpdateTrigger を定義することもできます。このトリガーは、ユーザーが次の 1 つ以上の編集を行った場合にのみ呼び出されます。

  • 1 人以上の参加者を追加します。
  • 1 人以上の参加者を削除します。
  • 別の会議ソリューションを追加または切り替える。

このトリガーが発生すると、calendar.eventUpdateTrigger マニフェスト フィールドで指定されたトリガー関数が実行されます。この関数は、カレンダーの予定の編集が保存される前に実行されます。

calendar.eventUpdateTrigger は通常、次の 1 つ以上を行うために使用されます。

  • アドオン イベントに変更があると、それに応じてアドオンのカレンダー イベント インターフェースが更新されます。
  • Google カレンダーに接続されている会議システムなど、サードパーティ製システムとカレンダーの予定データを同期させる。

アドオンでカレンダーの予定のデータ(参加者リストなど)を調整する必要がある場合は、アドオンの calendar.currentEventAccess マニフェスト フィールドを WRITE または READ_WRITE に設定する必要があります。また、このアドオンには https://www.googleapis.com/auth/calendar.addons.current.event.write スコープが必要です。

会議ソリューションを追加する

会議ソリューションは、ユーザーが Google カレンダーの予定に添付できるサードパーティの会議オプションです。新しい会議ソリューションを追加するアドオンの構築方法については、サードパーティ製会議の概要をご覧ください。このタイプの拡張機能用に UI を構築する必要はありません。追加されたソリューションは、Google カレンダーの予定 UI のプルダウン メニューにオプションとして表示されます。