邀请用户参加活动

创建事件

如果您拥有组织者的 Google 日历的写入权限,则可以添加 事件(使用 Events: insert) 方法。

此方法会单独将活动添加到组织者的日历中 添加邀请

添加参加者

通过这种方法,您还可以将参加者添加到同一活动, 电子邮件地址至 attendees 事件的属性。组织者将来对活动所做的任何更改都会 传播给参加者。

参加者会收到来自组织者的电子邮件地址的邀请。Google Google 日历用户会在电子邮件和/或日历中收到邀请, 具体取决于其 Google 日历设置中的“活动”设置:

  • 如果用户设置了 From everyone,该事件会直接添加到 他们的日历
  • 如果用户设置了 Only if the sender is known,则系统会添加该事件 直接将他们转到自己的日历中 如果组织者属于同一组织,或者 在其 Google 通讯录中。如果他们不认识组织者,可以点击添加到日历,也可以在邀请电子邮件中点击不确定来回复。那么事件 添加到他们的日历中。
  • 如果用户设置了“When I respond in email”,则系统不会收到所有邀请 添加到自己的日历中,直到用户通过点击不确定回复用户。 或 No(否)。

有关如何向 Google 日历添加邀请的更多信息,请参阅 在 Google 日历中管理邀请

直接在参加者日历中显示活动

直接在 Google 日历参加者的任何人的日历 设置参加者可能进行的操作,您可以 设置参加者的回复直接在参加者的日历中导入活动副本。 对于这两种方法,您都需要 对参加者的写入权限 日历;否则,请考虑 将组织者添加到参加者的联系人 需要对参加者通讯录的写入权限。

设置参加者的回复

要设置参加者对活动的回复,请按以下步骤操作:

  1. 在 Google 日历组织者的日历中创建活动,并将活动添加到 参加者(参见上文)。
  2. 使用 Events: update 方法 设置 参加者的回复acceptedtentative。您必须拥有与参加者的 日历。活动可能要稍微延迟一些时间才会显示在 参加者的日历。 详细了解如何使用 Events: update 方法

此方法会将活动添加到参加者的日历中,但参加者可能会 仍然会在电子邮件中看到横幅,说明邀请是通过某个地址发送的 以前不为所知

直接在参加者日历中导入活动的副本

要将活动的副本导入参加者的日历中,请执行以下操作: 步骤:

  1. 如果您拥有组织者的 Google 日历的写入权限,请导入副本 使用 Events: import 方法。
  2. 导入参加者的同一活动的其他副本 使用 Events: import 创建日历。 您必须拥有参加者日历的写入权限。使用相同的活动 ID (iCalUID) 组织者的副本和参加者的副本,并且确保指定组织者 。

通过此方法,参加者可以在其日历中看到该活动,但看不到活动 收到来自 Google 日历的邀请电子邮件。

将组织者添加到参加者的联系人

如果您没有参加者凭据,可以指示参加者或其所在组织提前将组织者的电子邮件地址添加到其 Google 通讯录,以便直接在其日历中显示活动。可能存在 以便新建联系人生效。

  • 让 Google 日历用户将组织者添加到其 Google 通讯录中
  • 如果参加者属于某个组织,您可以询问该组织的 管理员能够以程序化方式将电子邮件地址添加到其用户的 联系人。请管理员启用网域级委托,冒充用户并使用 People: createContact 方法为每位用户创建联系人,以确保日后来自这些电子邮件地址的邀请会自动显示在用户的日历中。
  • 如果您有权访问参加者的联系人,则还可以将 使用 People: createContact 方法。

通过电子邮件地址邀请用户

如果您没有组织者的 Google 日历的写入权限,或者 如果您不想显示组织者的电子邮件地址,请使用 协议 (RFC-5545) 使用 .ICS 文件通过电子邮件邀请用户。

如果参加者是 Google 日历用户,并且启用了 Only if the sender is known 设置,并且之前从未与该地址进行过任何互动或未将此地址记录为 除非他们点击此图标,否则系统不会将此邀请添加到他们的日历中 添加到日历或回复活动邀请。

另外,如果您希望 Google 日历用户更轻松地 将活动设为一次性活动,而不及时更新活动,您可以提供一个链接, 预填充事件,供用户自行添加。此方法会在用户的日历中创建一个不同的活动,除非您有权访问用户的日历,否则无法更新该活动。

请使用以下链接模板:


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 格式。在上面的示例中, 替换了 20230325T224500Z20230326T001500Z
  • 开始和结束时区:格式应为 IANA 时区数据库名称。 在 stzetz 字段中填写时区。
  • 事件说明:必须经过网址编码。
  • 活动地点:必须经过网址编码。
  • 活动标题:必须经过网址编码。

示例

我们来看一个构建预约服务的示例,以帮助您 用户向商家预约服务。用户预约时 希望您的服务向预订者和商家的 Google 添加事件 日历。

为了提供最佳用户体验,我们建议商家授予对其日历的写入权限,以便您可以直接将活动添加到商家的日历(创建活动),并邀请预约者参加该活动(添加参加者)。为了确保预订者能在 并提醒他们查收电子邮件 预订后立即回复参加活动。当他们回复 这些事件 来自 Google 日历的活动通知 根据其通知设置。

如果您想将活动直接添加到预订者的日历中,请通知预订者 添加到他们的通讯录 以及用于接收邀请的电子邮件地址或者 请求预订者提供其日历的写入权限,以便通过编程方式在他们的 代表(设置参加者的回复)并向他们发送电子邮件 关于已确认预订的通知。

如果商家不希望公开他们的电子邮件地址,可以使用 电子邮件地址,以便通过电子邮件将活动发送给预订者 (通过电子邮件地址邀请用户)。

事件传播

下图说明了相关机制。首先,Jack 在其主日历中创建活动(因此拥有组织者副本)。然后,他邀请 大提琴课程小组辅助日历,以及设置活动设置的 Susan Only if the sender is known。参加者“大提琴”课程 群组辅助日历,如果 Susan 认识 Jack,则会在日历上记录;否则 当她回复或表示自己认识小杰时。当 Susan 回复后,回复更改会传播回组织者,并使用 Susan 的回复更新组织者的副本。这些更改随后会对组织者的活动副本进行, 从而将信息传播到其他参加者

显示活动/参加者动态的图表

共享事件属性

创建活动的日历即为组织者日历。这个 日历拥有共享的活动信息,包括 ID、开始和结束时间, 摘要和说明当组织者的这些信息更新时 日历,那么这些更改会传播到参加者的副本。

私人活动属性

并非所有活动副本都会共享部分信息。部分房源 私密信息,如提醒、colorId、透明度或 extendedProperties.private 属性。这些属性由 而不受组织者日历的影响。

参加者还可以更改活动的共享属性。不过,这些更改只会反映在其自己的副本中,如果组织者进行更改,这些更改可能会丢失。

唯一会从参加者回传到组织者的活动更改是 此状态会存储在 attendees[].responseStatus 属性。