ical.js
ical.js copied to clipboard
Support VCard 2.1
If I try to parse a vCard in 2.1 format, the parser does not accept it, since the "TYPE=" tags are missing. Is vCard 2.1 not supported?
Vcard2 is currently not supported. version 3.0 was recently contributed, so it might be easy to add support for 2.1
Hello! Any news on this? :)
Unfortunately I won't have time in the near future to work on this, but contributions are welcome!
The vCard 3.0 RFC lists the following Differences From vCard v2.1:
- The
QUOTED-PRINTABLEinline encoding has been eliminated. Only the "B" encoding of [RFC 2047] is an allowed value for theENCODINGparameter.- The method for specifying
CRLFcharacter sequences in text type values has been changed. TheCRLFcharacter sequence in a text type value is specified with the backslash character sequence "\n" or "\N".- Any
COMMAorSEMICOLONin a text type value must be backslash escaped.VERSIONvalue corresponding to this specification MUST be "3.0".- The
[MIME-DIR]predefined types ofSOURCE,NAMEandPROFILEare allowed.- The
[MIME-DIR]VALUEtype parameter for value data typing is allowed. In addition, there are extensions made to these type values for additional value types used in this specification. 7.The[VCARD]CHARSETtype parameter has been eliminated. Character set can only be specified on theCHARSETparameter on the Content-Type MIME header field.- The
[VCARD]support for non-significant WSP character has been eliminated.- The
"TYPE="prefix to parameter values is required. In[VCARD]this was optional.LOGO,PHOTOandSOUNDmultimedia formats MUST be either IANA registered types or non-standard types.- Inline binary content must be "B" encoded and folded. A blank line after the encoded binary content is no longer required.
TELvalues can be identified as personal communication services telephone numbers with thePCStype parameter value.- The
CATEGORIES,CLASS,NICKNAME,PRODIDandSORT-STRINGtypes have been added.- The
VERSION,NandFNtypes MUST be specified in a vCard. This identifies the version of the specification that the object was formatted to. It also assures that every vCard will include both a structured and formatted name that can be used to identify the object.
Update: This translates to the following requirements (sections refer to the vCard 2.1 Specification):
- [1] Support
QUOTED-PRINTABLEinline encoding [cf. Section 2.1.2]. - [2] Do not interpret "\n" or "\N" as a
CRLF(but instead literally as "\", followed by "n" or "N"). - [3] Do not interpret
COMMAas a multi-value separator [all values are single values]. - [3] Note: Despite what vCard 3.0 states, a
SEMICOLONmust also be backslash escaped in vCard 2.1. "in a component of a compound property" [cf. Section 2.1.3] - [4] Require
VERSIONto be "2.1" [cf. Section 2.6.6]. - [5] [6] n/a
- [7] Support
CHARSETtype parameter [and default toASCII, cf. 2.1.6]. - [8] Support non-significant WSP characters [i.e. HTAB, cf. 2.9].
- [9] Don't require parameter name, if the value is unambiguous [e.g. for
TYPE=andENCODING=, cf. 2.1.2]. - [10] Require
TYPEofLOGO[cf. 2.5.3.1],PHOTO[cf. 2.2.3.1] andSOUND[cf. 2.6.3.1] as defined by the spec [e.g.GIF]. - [11] Parse inline binary content according to
ENCODINGparameter [and default to7-bit, cf. 2.1.5]. - [12] Do not support the
PCStype parameter value forTEL[from vCard 3.0]. - [13] Do not support
CATEGORIES,CLASS,NICKNAME,PRODIDandSORT-STRING[from vCard 3.0]. - [14] Do not require
NandFN[Note:Nis only required for writers, not for readers, cf. 2.2.2]. - [14] Note: Despite what vCard 3.0 states,
VERSIONis also required in vCard 2.1 [cf. [4] and 2.6.6]. - [...] Use
COMMAto separateGEOvalues [cf. 2.4.6 versusSEMICOLONin vCard 3.0]
Are you still working on this @caugner ? Would love to have the categories tag included!