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