Google Workspace アドオンは、ユーザーがカレンダーやカレンダーの予定を表示または編集しているときに、カスタマイズしたインターフェースを提供します。これにより、ユーザーに追加の関連情報を提供し、タスクを自動化して、サードパーティのシステムを Google カレンダーに接続できます。
Google カレンダーのアドオン インターフェースを作成する際に、ホームページを提供できます。複数のホストで同じホームページを使用することも、Google カレンダー用に特定のホームページを設計することもできます。
このアドオンでは、ユーザーがカレンダーの予定を開いたときに表示されるインターフェースを定義することもできます。
アドオン UI へのアクセス
Google Workspace アドオンは、起動方法に応じて、ホームページのインターフェース、Google カレンダーの予定イベント インターフェース、添付ファイルの選択インターフェース、またはこの 3 つすべてを定義できます。
- カレンダー ビューでユーザーがアドオン アイコンをクリックすると、対応する
calendar.homepageTrigger
関数(存在する場合)が実行されます。この関数は、ホームページ カードを作成し、表示するカレンダーに返します。calendar.homepageTrigger
関数が定義されていない場合は、代わりに汎用のホームページ カードが表示されます。 - ユーザーがカレンダーの予定を開き、アドオン アイコンをクリックしてアドオンが開くか、対応する
eventOpenTrigger
関数(存在する場合)がアドオンで開かれます。この関数はアドオンのカレンダーの予定イベント インターフェースを作成し、表示するために Google カレンダーに戻ります。 eventAttachmentTrigger
関数を定義しているアドオンの場合、ユーザーがカレンダーの予定の編集中に [添付ファイルを追加] をクリックすると、アドオンは添付ファイル プロバイダとして表示されます。アドオンが選択されると、eventAttachmentTrigger
関数はアドオンの添付ファイル選択インターフェースを作成し、表示する Google カレンダーに返します。
アドオンのカレンダー インターフェースの構築
Google Workspace アドオンを使用して Google カレンダーを拡張する手順は次のとおりです。
- アドオンにカレンダー固有のホームページを割り当てるかどうかを決定します。また、ユーザーがカレンダーの予定を編集しているときにカスタム インターフェースを提供するかどうかも決定します。
- 必要なスコープを含む、適切な
addOns.common
フィールドとaddOns.calendar
フィールドをアドオン スクリプト プロジェクトのマニフェストに追加します。 - カレンダー固有のホームページを提供する場合は、
calendar.homepageTrigger
関数を実装してこのインターフェースを作成します。また、複数の Google Workspace ホストにcommon.homepageTrigger
インターフェースを使用することもできます。 - カレンダーの予定のインターフェースを提供する場合は、そのインターフェースを作成するために
calendar.eventOpenTrigger
関数を実装する必要があります。詳しくは、カレンダーの予定の拡張をご覧ください。 - ボタンのクリックなど、ユーザーの 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 のプルダウン メニューにオプションとして表示されます。