Google calendar api UID问题:仅提交最后一个事件

Google calendar api UID问题:仅提交最后一个事件,google-calendar-api,icalendar,rfc5545,Google Calendar Api,Icalendar,Rfc5545,好了,伙计们,这是最糟糕的事情: 我制作了一个批处理文件,生成了一个.ics文件,我应该每天在谷歌日历中“上传”。 现在,批处理工作正常,问题是我对结果的行为 长话短说,如果我将UID放入VEVENT中,只会将最后一个事件提交到日历中 例如: BEGIN:VCALENDAR VERSION:2.0 PRODID:-//prodvam v0.3//EN METHOD:PUBLISH BEGIN:VEVENT UID:prod STATUS:CONFIRMED SEQUENCE:0 DTSTART;

好了,伙计们,这是最糟糕的事情: 我制作了一个批处理文件,生成了一个
.ics
文件,我应该每天在谷歌日历中“上传”。 现在,批处理工作正常,问题是我对结果的行为

长话短说,如果我将
UID
放入
VEVENT
中,只会将最后一个事件提交到日历中

例如:

BEGIN:VCALENDAR
VERSION:2.0
PRODID:-//prodvam v0.3//EN
METHOD:PUBLISH
BEGIN:VEVENT
UID:prod
STATUS:CONFIRMED
SEQUENCE:0
DTSTART;VALUE=DATE:20141112
SUMMARY:SUMMARY1
END:VEVENT
BEGIN:VEVENT
UID:prod
STATUS:CONFIRMED
SEQUENCE:0
DTSTART;VALUE=DATE:20141112
SUMMARY:SUMMARY2
END:VEVENT
END:VCALENDAR
这将仅提交11月12日举行的名为SUMMARY2的活动

我知道提交事件不需要
UID
,但如果我以后想删除事件,它是必须的[我需要它,所以我不能只删除那行“代码”]

我可以删除事件,创建
.ics
文件和一切,只是,我不明白为什么
UID
只会使最后一个事件提交

我试着添加/订阅各种东西,甚至是nosense的,比如事件的评论

我做错了什么?
任何提示?

每个事件都应该有自己的UID。您的文件已修复:

BEGIN:VCALENDAR
VERSION:2.0
PRODID:-//ingrossod//Compagnia VAM v0.3//EN
METHOD:PUBLISH
BEGIN:VEVENT
UID:ingrossod1
STATUS:CONFIRMED
SEQUENCE:0
DTSTART;VALUE=DATE:20141112
SUMMARY:SUMMARY1
END:VEVENT
BEGIN:VEVENT
UID:ingrossod2
STATUS:CONFIRMED
SEQUENCE:0
DTSTART;VALUE=DATE:20141112
SUMMARY:SUMMARY2
END:VEVENT
END:VCALENDAR

luc为您的问题提供了一个有效的答案,但是您可能没有全局唯一的ID

UID
表示
唯一标识符
“唯一ID”,它是一个持久的、全局唯一的ID 日历组件的标识符。为确保全局唯一性,RFC(请参阅)提供了如何确保其全局唯一性的指南:

确保唯一性的一个好方法是将 所在主机的域名或域文字IP地址 标识符是在“@”的右侧创建的,并且 在左侧,放置当前日历的组合 日期和时间(即,格式化为日期时间值) 以及其他一些当前唯一的(可能是连续的) 系统上可用的标识符(例如,进程id (数字)


您正在使用caldav api吗?还是别的什么
UID
是iCalendar fwiw的必填字段。我首先看到了前面的答案,并搜索了使用唯一ID的方法,我不由自主地遵循了您的提示[:感谢您的时间和帮助!
BEGIN:VCALENDAR
VERSION:2.0
PRODID:-//ingrossod//Compagnia VAM v0.3//EN
METHOD:PUBLISH
BEGIN:VEVENT
UID:20141112_SUMMARY1@ingrossod
STATUS:CONFIRMED
SEQUENCE:0
DTSTART;VALUE=DATE:20141112
SUMMARY:SUMMARY1
END:VEVENT
BEGIN:VEVENT
UID:20141112_SUMMARY2@ingrossod
STATUS:CONFIRMED
SEQUENCE:0
DTSTART;VALUE=DATE:20141112
SUMMARY:SUMMARY2
END:VEVENT
END:VCALENDAR