创建事件
如果您拥有组织者的 Google 日历的写入权限,则可以添加
事件(使用 Events: insert
)
方法。
此方法会单独将活动添加到组织者的日历中 添加邀请
添加参加者
通过这种方法,您还可以将参加者添加到同一活动,
电子邮件地址至 attendees
事件的属性。组织者将来对活动所做的任何更改都会
传播给参加者。
参加者会收到来自组织者的电子邮件地址的邀请。Google Google 日历用户会在电子邮件和/或日历中收到邀请, 具体取决于其 Google 日历设置中的“活动”设置:
- 如果用户设置了
From everyone
,该事件会直接添加到 他们的日历 - 如果用户设置了
Only if the sender is known
,则系统会添加该事件 直接将他们转到自己的日历中 如果组织者属于同一组织,或者 在其 Google 通讯录中。如果组织者 不知道对方,他们可以点击我认识此发件人或通过 点击邀请电子邮件中的是或不确定。那么事件 添加到他们的日历中。 - 如果用户设置了“
When I respond in email
”,则系统不会收到所有邀请 添加到自己的日历中,直到用户通过点击是、不确定回复用户。 或 No(否)。
有关如何向 Google 日历添加邀请的更多信息,请参阅 在 Google 日历中管理邀请。
请勿使用
attendees[].responseStatus
属性设置为 needsAction
以外的任何值。预填充参加者的
回复不会自动将事件添加到用户的日历。
直接在参加者的日历
直接在 Google 日历参加者的任何人的日历 设置参加者可能进行的操作,您可以 设置参加者的回复或 直接在参加者的日历中导入活动副本。 对于这两种方法,您都需要 对参加者的写入权限 日历;否则,请考虑 将组织者添加到参加者的联系人 需要对参加者通讯录的写入权限。
设置参加者的回复
要设置参加者对活动的回复,请按以下步骤操作:
- 在 Google 日历组织者的日历中创建活动,并将活动添加到 参加者(参见上文)。
- 使用
Events: update
方法 设置 参加者的回复 至accepted
或tentative
。您必须拥有与参加者的 日历。活动可能要稍微延迟一些时间才会显示在 参加者的日历。 详细了解如何使用Events: update
方法。
此方法会将活动添加到参加者的日历中,但参加者可能会 仍然会在电子邮件中看到横幅,说明邀请是通过某个地址发送的 以前不为所知
直接在参加者的日历中导入活动的副本
要将活动的副本导入参加者的日历中,请执行以下操作: 步骤:
- 如果您拥有组织者的 Google 日历的写入权限,请导入副本
使用
Events: import
方法。 - 导入参加者的同一活动的其他副本
使用
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 格式。在上面的示例中,
替换了
20230325T224500Z
和20230326T001500Z
。 - 开始和结束时区:格式应为 IANA 时区数据库名称。
在
stz
和etz
字段中填写时区。 - 事件说明:必须经过网址编码。
- 活动地点:必须经过网址编码。
- 活动标题:必须经过网址编码。
示例
我们来看一个构建预约服务的示例,以帮助您 用户向商家预约服务。用户预约时 希望您的服务向预订者和商家的 Google 添加事件 日历。
为提供最佳用户体验,我们建议商家授予写入权限 添加到他们的日历中,这样您就可以将活动直接添加到商家的 日历(创建活动),并邀请预订者参加此活动 (添加参加者)。为了确保预订者能在 并提醒他们查收电子邮件 预订后立即回复参加活动。当他们回复 这些事件 来自 Google 日历的活动通知 根据其通知设置。
如果您想将活动直接添加到预订者的日历中,请通知预订者 添加到他们的通讯录 以及用于接收邀请的电子邮件地址或者 请求预订者提供其日历的写入权限,以便通过编程方式在他们的 代表(设置参加者的回复)并向他们发送电子邮件 关于已确认预订的通知。
如果商家不希望公开他们的电子邮件地址,可以使用 电子邮件地址,以便通过电子邮件将活动发送给预订者 (通过电子邮件地址邀请用户)。
事件传播
下图说明了动态过程。首先,Jack 在
他的主日历(因此拥有组织者副本)。然后,他邀请
大提琴课程小组辅助日历,以及设置活动设置的小苏
Only if the sender is known
。参加者“大提琴”课程
群组辅助日历,如果 Susan 认识 Jack,则会在日历上记录;否则
当她回复或表示自己认识小杰时。苏珊回复后,回复会随之更改
将副本传回给组织者,将组织者的副本更新为
Susan 的回答。这些更改随后会对组织者的活动副本进行,
从而将权限传播到其他参加者
共享事件属性
创建活动的日历即为组织者日历。这个 日历拥有共享的活动信息,包括 ID、开始和结束时间, 摘要和说明当组织者的这些信息更新时 日历,那么相应更改就会传播到参加者的副本。
私人活动属性
并非所有活动副本都会共享部分信息。部分房源
私密信息,如提醒、colorId
、透明度或
extendedProperties.private
属性。这些属性由
而不受组织者日历的影响。
参加者还可以更改活动的共享属性。不过,这些 更改只会体现在他们自己的副本上,如果组织者创建,相应更改可能会丢失 进行更改。
唯一会从参加者回传到组织者的活动更改是
此状态会存储在
attendees[].responseStatus
属性。