予定を作成する
主催者の Google カレンダーへの書き込み権限がある場合は、Events: insert
メソッドを使用してイベントを追加できます。
この方法では、招待状を追加する設定に関係なく、主催者のカレンダーに予定が直接追加されます。
参加者を追加する
この方法では、イベントの attendees
プロパティにメールアドレスを追加して、同じイベントに出席者を追加することもできます。主催者がイベントに変更を加えると、参加者に反映されます。
参加者には、主催者のメールアドレスから招待状が届きます。Google カレンダー ユーザーは、Google カレンダーの設定内の [イベント] の設定に応じて、メールまたはカレンダーで招待状を受け取ります。
- 設定が
From everyone
の場合、予定はカレンダーに直接追加されます - 設定が
Only if the sender is known
の場合、招待したユーザーが以前にやり取りしたことがあるユーザー、同じ組織内のユーザー、Google コンタクトに登録されているユーザーであれば、そのユーザーのカレンダーに予定が直接追加されます。招待したユーザーが不明な場合は、[カレンダーに追加] をクリックするか、招待メールで [はい] または [未定] をクリックして出欠確認に返信します。その後、予定がカレンダーに追加されます。 - ユーザーが
When I respond in email
を設定している場合、ユーザーが招待メールで [はい]、[未定]、[いいえ] をクリックして出欠確認を返信するまで、すべての招待状がカレンダーに追加されることはありません。
Google カレンダーに招待状を追加する方法について詳しくは、カレンダーで招待状を管理するをご覧ください。
参加者のカレンダーにイベントを直接表示する
参加者の Google カレンダーに予定を直接表示するには、参加者の出欠確認を設定するか、参加者のカレンダーに予定のコピーを直接インポートします。どちらの方法でも、参加者のカレンダーへの書き込みアクセス権が必要です。アクセス権がない場合は、主催者を参加者の連絡先に追加することを検討してください。この場合、参加者の連絡先への書き込みアクセス権が必要になることがあります。
参加者の RSVP を設定する
参加者の RSVP をイベントに設定する手順は次のとおりです。
- Google カレンダーのオーガナイザーのカレンダーで予定を作成し、参加者を追加します(上記を参照)。
Events: update
メソッドを使用して、参加者の RSVP をaccepted
またはtentative
に設定します。参加者のカレンダーへの書き込みアクセス権が必要です。参加者のカレンダーに予定が表示されるまでに少し時間がかかることがあります。詳しくは、Events: update
メソッドの使用方法をご覧ください。
この方法では、参加者のカレンダーに予定が追加されますが、参加者には、招待状が以前に不明だったアドレスから送信されたというバナーがメールに表示されることがあります。
参加者のカレンダーに予定のコピーを直接インポートする
イベントのコピーを参加者のカレンダーにインポートする手順は次のとおりです。
- 主催者の Google カレンダーへの書き込み権限がある場合は、
Events: import
メソッドを使用して予定のコピーをインポートします。 Events: import
を使用して、参加者のカレンダーに同じイベントの別のコピーをインポートします。参加者のカレンダーへの書き込みアクセス権が必要です。主催者と参加者のコピーに同じイベント ID(iCalUID
)を使用し、参加者のコピーに主催者を指定してください。
この方法では、参加者はカレンダーで予定を確認できますが、Google カレンダーから招待メールは届きません。
主催者を参加者の連絡先に追加する
参加者の認証情報がない場合は、参加者またはその組織に、主催者のメールアドレスを事前に Google コンタクトに追加して、カレンダーに予定を直接表示するよう指示できます。新しく作成した連絡先が有効になるまで、少し時間がかかることがあります。
- Google カレンダーのユーザーに、主催者を Google コンタクトに追加するよう依頼します。
- 参加者が組織に所属している場合は、組織の管理者に、ユーザーの連絡先にメールアドレスをプログラムで追加するよう依頼できます。ドメイン全体の委任を有効にして、ユーザーの権限を借用し、
People: createContact
メソッドを使用して各ユーザーの連絡先を作成するよう、管理者に依頼します。これにより、これらのメールアドレスからの今後の招待状がユーザーのカレンダーに自動的に表示されるようにします。 - 参加者の連絡先にアクセスできる場合は、
People: createContact
メソッドを使用して、主催者のメールアドレスを参加者の連絡先に追加することもできます。
メールアドレスからユーザーを招待する
主催者の Google カレンダーへの書き込み権限がない、または主催者のメールアドレスを公開したくない場合は、iCalendar プロトコル(RFC-5545)を使用して、.ICS ファイルでメールを使用してユーザーを招待します。
参加者が Only if the sender
is known
の設定が適用された Google カレンダー ユーザーで、以前にその住所を操作したことがない、またはその住所を認識済みとして記録したことがない場合は、[カレンダーに追加] をクリックするか、予定への出欠確認を行うまで、招待状はカレンダーに追加されません。
ユーザーがイベントを追加するためのリンクを提供する
また、Google カレンダーのユーザーが予定を更新せずに 1 回限りの予定を簡単に追加できるようにするには、事前入力された予定のリンクをユーザーに提供して、ユーザー自身で追加できるようにします。このメソッドは、ユーザーのカレンダーに個別の予定を作成します。この予定は、ユーザーのカレンダーにアクセスできる場合を除き、更新できません。
次のリンク テンプレートを使用します。
https://calendar.google.com/calendar/r/eventedit?action=TEMPLATE&dates=20230325T224500Z%2F20230326T001500Z&stz=Europe/Brussels&etz=Europe/Brussels&details=EVENT_DESCRIPTION_HERE&location=EVENT_LOCATION_HERE&text=EVENT_TITLE_HERE
以下の情報を更新してください。
- 開始日時と終了日時: ISO 8601 形式を使用します。上記の例では、
20230325T224500Z
と20230326T001500Z
を置き換えます。 - 開始時間と終了時間のタイムゾーン: IANA タイムゾーン データベース名の形式で指定します。タイムゾーンを
stz
フィールドとetz
フィールドに配置します。 - イベントの説明: URL エンコードする必要があります。
- イベントの場所: URL エンコードする必要があります。
- イベントのタイトル: URL エンコードする必要があります。
例
ユーザーがビジネスの予約を簡単にできるように、予約サービスを作る例について考えてみましょう。ユーザーが予約すると、予約者の Google カレンダーとビジネスの Google カレンダーに予定が追加されるようにします。
ユーザー エクスペリエンスを最大限に高めるには、ビジネスのカレンダーへの書き込みアクセス権を付与することをおすすめします。これにより、ビジネスのカレンダーに予定を直接追加(予定を作成)し、その予定に予約者を招待(参加者を追加)できるようになります。予約者がカレンダーにイベントが表示され、リマインダーが届くようにするには、予約後すぐにメールを確認し、イベントへの出欠確認に [はい] を選択するよう伝えます。イベントへの参加を承諾すると、通知設定に応じてGoogle カレンダーからイベントの通知が送信されます。
予約者のカレンダーに予定を直接追加する場合は、招待状を受け取るメールアドレスを連絡先に追加するよう予約者に伝えます。または、予約者のカレンダーへの書き込みアクセス権をリクエストして、予約者の代わりにプログラムで RSVP を返信し(参加者の RSVP を設定する)、予約の確定に関するメール通知を送信します。
ビジネスがメールアドレスを公開したくない場合は、ユーザー固有のメールアドレスを使用して、メールでイベントを予約者に送信します(メールアドレスからユーザーを招待する)。
イベントの伝播
次の図は、このダイナミクスを示しています。まず、ジャックはメインのカレンダーに予定を作成します(これにより、主催者のコピーを所有します)。次に、チェロ レッスン グループのセカンダリ カレンダーと、イベント設定が Only if the sender is known
のスーザンを招待します。参加者のコピーは、チェロ レッスン グループの予備カレンダーに作成されます。また、スーザンがジャックを知っている場合はスーザンのカレンダーに、そうでない場合はスーザンが RSVP を送信したときまたはジャックを知っていることを示すときに作成されます。スーザンが返信すると、RSVP の変更が主催者に反映され、主催者のコピーがスーザンの返信で更新されます。主催者の予定のコピーに加えた変更は、他の参加者に反映されます。
共有イベントのプロパティ
予定が作成されたカレンダーが主催者のカレンダーです。このカレンダーは、ID、開始時間と終了時間、概要、説明などの共有イベント情報を所有します。主催者のカレンダーでこの情報が更新されると、変更が参加者のコピーに反映されます。
非公開イベントのプロパティ
すべての情報がすべてのイベントコピー間で共有されるわけではありません。リマインダー、colorId
、透明度、extendedProperties.private
プロパティなど、一部のプロパティは非公開です。これらのプロパティは、主催者のカレンダーではなく、参加者の設定によって制御されます。
参加者は、イベントの共有プロパティを変更することもできます。ただし、これらの変更は自分のコピーにのみ反映され、主催者が変更を加えると失われる可能性があります。
参加者から主催者に反映されるイベントの変更は、attendees[].responseStatus
プロパティに保存される参加者の返信ステータスのみです。