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 フィールドで指定された関数を実装する必要があります。この関数は、引数としてイベント オブジェクトを受け取り、ユーザーがイベントを開いている間にカレンダーに表示する 1 つの Card オブジェクトまたは Card オブジェクトの配列を返す必要があります。

イベント オブジェクト

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

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

カレンダーの予定を更新する

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

  • 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 のプルダウン メニューにオプションとして表示されます。