I exported a .ics file from Microsoft Outlook calendar. The .ics file contained this UID property:
UID:Ooldc6nEFUK0B6AS7oLh8w==
Here is another UID generated by Microsoft Outlook calendar:
UID:sSfe/XDnb0qy6JvmOrlKMg==
According to RFC 7986, the value of both of those UIDs is invalid. Specifically, the first one contains the invalid equals ( = ) symbol and the second one contains the invalid forward slash ( / ) symbol (as well as the invalid equals symbol).
Do you agree that the above UID values are invalid?
Do you know what rules Microsoft Outlook calendar follows in generating UID values? Perhaps they generate UID values as Base64 strings?
I am creating a .ics validator tool. Should my tool flag the above UID values as invalid? What rules should I use in my validator tool for validating UID values?
Here's what RFC 7986 says about UID values:
This specification updates [RFC5545] by stating that "UID" values MUST NOT include any data that might identify a user, host, domain, or any other security- or privacy-sensitive information. It is RECOMMENDED that calendar user agents now generate "UID" values that are hex-encoded random Universally Unique Identifier (UUID) values as defined in Sections 4.4 and 4.5 of [RFC4122]. If calendar user agents choose to use other forms of opaque identifiers for the "UID" value, they MUST have a length less than 255 octets and MUST conform to the "iana-token" ABNF syntax defined in Section 3.1 of [RFC5545].
Here’s how RFC 5545 defines “iana-token”:
iana-token = 1*(ALPHA / DIGIT / "-")