在什么情况下 iCal VEVENT 会以重复的 UID 结束?
In what situations could an iCal VEVENT end up with a duplicated UID?
我似乎无法弄清楚为什么这些 Google iCal 事件有一些非唯一的 UID。 spec says that event UIDs "MUST" be unique,但 Google 日历返回了一些重复项。
➜ grep 'UID:' testcal.ics | wc -l
744
➜ grep 'UID:' testcal.ics | uniq -c
738
➜ grep 'UID:' testcal.ics | uniq -d
UID:p7gllqg6177dj05omcc3cejl9o@google.com
UID:u64e5o1fm802dt5s4fn71perho@google.com
UID:q09i2hjd7nfavjc2j65e7o29qk@google.com
UID:6baas9neong05nrfca8lein2kl@google.com
testcal.ics
是我的个人日历之一的导出,可以追溯到大约 10 年前。日历有数百个各种类型的事件。我创建的重复活动、我受邀参加的活动、透明活动、多日活动等等等等
上面列出的四个UID都对应着周期性的事件。对于每个重复的 UID,都有一个“父”VEVENT
列出重复规则和一个“子”VEVENT
来表示该序列中的单个实例。在一种情况下,有两个实例和一个“父”都共享相同的 UID。
除了都是重复发生的事件之外,它们似乎没有任何相关性。他们在重复中有 >=1 个实例 确实 获得了唯一的 UID。同样,还有数百个其他重复发生的事件不受此影响。这四个发生在非常不同的时间(2013 年、2015 年、2018 年和 2020 年),因此 device/app 管理它们的时间每次都会非常不同。
这只是一个持续存在的错误,还是存在重复 UID 可能合适的合法情况(即使它不在规范中)?
在一个日历流中有多个具有相同 UID 的 VEVENT 是合法的。一个是主循环事件(它具有 RRUle 或 RDATE 属性),而其他事件具有 RECURRENCE-ID 并且对应于仅对该实例进行更改的循环事件的实例(例如,更改 LOCATION) .
我似乎无法弄清楚为什么这些 Google iCal 事件有一些非唯一的 UID。 spec says that event UIDs "MUST" be unique,但 Google 日历返回了一些重复项。
➜ grep 'UID:' testcal.ics | wc -l
744
➜ grep 'UID:' testcal.ics | uniq -c
738
➜ grep 'UID:' testcal.ics | uniq -d
UID:p7gllqg6177dj05omcc3cejl9o@google.com
UID:u64e5o1fm802dt5s4fn71perho@google.com
UID:q09i2hjd7nfavjc2j65e7o29qk@google.com
UID:6baas9neong05nrfca8lein2kl@google.com
testcal.ics
是我的个人日历之一的导出,可以追溯到大约 10 年前。日历有数百个各种类型的事件。我创建的重复活动、我受邀参加的活动、透明活动、多日活动等等等等
上面列出的四个UID都对应着周期性的事件。对于每个重复的 UID,都有一个“父”VEVENT
列出重复规则和一个“子”VEVENT
来表示该序列中的单个实例。在一种情况下,有两个实例和一个“父”都共享相同的 UID。
除了都是重复发生的事件之外,它们似乎没有任何相关性。他们在重复中有 >=1 个实例 确实 获得了唯一的 UID。同样,还有数百个其他重复发生的事件不受此影响。这四个发生在非常不同的时间(2013 年、2015 年、2018 年和 2020 年),因此 device/app 管理它们的时间每次都会非常不同。
这只是一个持续存在的错误,还是存在重复 UID 可能合适的合法情况(即使它不在规范中)?
在一个日历流中有多个具有相同 UID 的 VEVENT 是合法的。一个是主循环事件(它具有 RRUle 或 RDATE 属性),而其他事件具有 RECURRENCE-ID 并且对应于仅对该实例进行更改的循环事件的实例(例如,更改 LOCATION) .