ical.js icon indicating copy to clipboard operation
ical.js copied to clipboard

Support VCard 2.1

Open derwaldgeist opened this issue 10 years ago • 6 comments

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?

derwaldgeist avatar Aug 22 '15 11:08 derwaldgeist

Vcard2 is currently not supported. version 3.0 was recently contributed, so it might be easy to add support for 2.1

kewisch avatar Aug 22 '15 16:08 kewisch

Hello! Any news on this? :)

skjnldsv avatar Oct 01 '18 16:10 skjnldsv

Unfortunately I won't have time in the near future to work on this, but contributions are welcome!

kewisch avatar Oct 01 '18 18:10 kewisch

The vCard 3.0 RFC lists the following Differences From vCard v2.1:

  1. The QUOTED-PRINTABLE inline encoding has been eliminated. Only the "B" encoding of [RFC 2047] is an allowed value for the ENCODING parameter.
  2. The method for specifying CRLF character sequences in text type values has been changed. The CRLF character sequence in a text type value is specified with the backslash character sequence "\n" or "\N".
  3. Any COMMA or SEMICOLON in a text type value must be backslash escaped.
  4. VERSION value corresponding to this specification MUST be "3.0".
  5. The [MIME-DIR] predefined types of SOURCE, NAME and PROFILE are allowed.
  6. The [MIME-DIR] VALUE type 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] CHARSET type parameter has been eliminated. Character set can only be specified on the CHARSET parameter on the Content-Type MIME header field.
  7. The [VCARD] support for non-significant WSP character has been eliminated.
  8. The "TYPE=" prefix to parameter values is required. In [VCARD] this was optional.
  9. LOGO, PHOTO and SOUND multimedia formats MUST be either IANA registered types or non-standard types.
  10. Inline binary content must be "B" encoded and folded. A blank line after the encoded binary content is no longer required.
  11. TEL values can be identified as personal communication services telephone numbers with the PCS type parameter value.
  12. The CATEGORIES, CLASS, NICKNAME, PRODID and SORT-STRING types have been added.
  13. The VERSION, N and FN types 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-PRINTABLE inline 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 COMMA as a multi-value separator [all values are single values].
  • [3] Note: Despite what vCard 3.0 states, a SEMICOLON must also be backslash escaped in vCard 2.1. "in a component of a compound property" [cf. Section 2.1.3]
  • [4] Require VERSION to be "2.1" [cf. Section 2.6.6].
  • [5] [6] n/a
  • [7] Support CHARSET type parameter [and default to ASCII, 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= and ENCODING=, cf. 2.1.2].
  • [10] Require TYPE of LOGO [cf. 2.5.3.1], PHOTO [cf. 2.2.3.1] and SOUND [cf. 2.6.3.1] as defined by the spec [e.g. GIF].
  • [11] Parse inline binary content according to ENCODING parameter [and default to 7-bit, cf. 2.1.5].
  • [12] Do not support the PCS type parameter value for TEL [from vCard 3.0].
  • [13] Do not support CATEGORIES, CLASS, NICKNAME, PRODID and SORT-STRING [from vCard 3.0].
  • [14] Do not require N and FN [Note: N is only required for writers, not for readers, cf. 2.2.2].
  • [14] Note: Despite what vCard 3.0 states, VERSION is also required in vCard 2.1 [cf. [4] and 2.6.6].
  • [...] Use COMMA to separate GEO values [cf. 2.4.6 versus SEMICOLON in vCard 3.0]

caugner avatar Apr 05 '19 17:04 caugner

Are you still working on this @caugner ? Would love to have the categories tag included!

schlagmichdoch avatar Nov 28 '21 02:11 schlagmichdoch