使用“添加到日历"时,Google日历会忽略ICS UID;关联 [英] Google Calendar ignoring ICS UID when using "Add to Calendar" link

查看:103
本文介绍了使用“添加到日历"时,Google日历会忽略ICS UID;关联的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

开发一个应用程序,使申请人可以通过第三方服务安排与我们团队成员的面试.我们会定期对第三方进行API调用以进行最近的更改,生成ICS文件,然后将该文件通过电子邮件发送给我们的团队成员,以便他们可以将其存储在Google日历中.

Developing an app where applicants schedule interviews with our team members through a third party service. Periodically we make API calls to the third party for any recent changes, generate an ICS file then email that file to our team member so they can store it in their Google Calendar.


BEGIN:VCALENDAR
VERSION:2.0
PRODID:-//Google Inc//Google Calendar 70.9054//EN
CALSCALE:GREGORIAN
METHOD:REQUEST
BEGIN:VEVENT
DTSTART:20171001T180000Z
DTEND:20171001T190000Z
SUMMARY:Sample Event
UID:5179167a74d55b6fbaf6193026af14de@example.io
DTSTAMP:20171001T023000Z
ORGANIZER:noreply@example.io
SEQUENCE:0
END:VEVENT
END:VCALENDAR

我遇到的问题是,当团队成员单击Google Mail生成的添加到日历"链接时.它会忽略我生成的UID 5179167a74d55b6fbaf6193026af14de@example.io ,并创建自己的UID: 20d19q1acurfub15pe94hb1b7s@google.com .

The issue I'm having is that when the team member clicks the "Add to Calendar" link that Google Mail generates. It ignores the UID I generated, 5179167a74d55b6fbaf6193026af14de@example.io, and creates it's own: 20d19q1acurfub15pe94hb1b7s@google.com.

因此,当对事件进行更新时,UID与Google存储的UID不同,因此,它会创建一个全新的事件,而不是更新现有事件.在下面的示例中,事件被提前了1小时:

Because of this, when updates are made to the event the UID is not the same as Google is storing, therefore it creates a whole new event rather than updating the existing event. In the example below the event was moved 1 hour ahead:


BEGIN:VCALENDAR
VERSION:2.0
PRODID:-//Google Inc//Google Calendar 70.9054//EN
CALSCALE:GREGORIAN
METHOD:REQUEST
BEGIN:VEVENT
DTSTART:20171001T190000Z
DTEND:20171001T200000Z
SUMMARY:Sample Event
UID:5179167a74d55b6fbaf6193026af14de@example.io
DTSTAMP:20171001T023224Z
ORGANIZER:noreply@example.io
SEQUENCE:1
END:VEVENT
END:VCALENDAR

因此,同一采访中有两个事件,其中包含两个不同的 xxx@google.com UID.

So now there are two events for the same interview with two different xxx@google.com UIDs.

我发现,如果直接导入ICS文件而不是使用添加到日历"链接,则UID将保留为最初创建的状态,并且更新/取消将按预期进行.由于在Google日历中导入事件的过程并不是最简单的工作流程,而我们期望的是大量事件,因此,我希望保留添加到日历"方法.

I have found that if I import the ICS file directly, instead of using the "Add to Calendar" link, then the UID is preserved as originally created and updating/cancelling works as expected. Since the process of importing events in Google Calendar isn't the easiest workflow and the large volume of events we're expecting, I'm hoping to retain the "Add to Calendar" method.

关于我在这里做错什么的任何建议吗?

Any suggestions on what I'm doing wrong here?

推荐答案

您正在发送不带任何与会者属性的会议请求.根据 https://tools.ietf.org/html/rfc5546强制要求参加者#section-3.2.2 这是造成日历服务器混乱的最可能原因.

You are sending a meeting REQUEST without any ATTENDEE property. ATTENDEE is mandatory as per https://tools.ietf.org/html/rfc5546#section-3.2.2 This is the most likely cause of the calendar server being confused.

这篇关于使用“添加到日历"时,Google日历会忽略ICS UID;关联的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆