7. Synchronization
vCard data often needs to be synchronized between devices. In this
context, synchronization is defined as the intelligent merging of two
representations of the same object. vCard 4.0 includes mechanisms to
aid this process.
7.1. Mechanisms
Two mechanisms are available: the UID property is used to match
multiple instances of the same vCard, while the PID parameter is used
to match multiple instances of the same property.
The term "matching" is used here to mean recognizing that two
instances are in fact representations of the same object. For
example, a single vCard that is shared with someone results in two
vCard instances. After they have evolved separately, they still
represent the same object, and therefore may be matched by a
synchronization engine.
7.1.1. Matching vCard Instances
vCard instances for which the UID properties (Section 6.7.6) are
equivalent MUST be matched. Equivalence is determined as specified
in [RFC3986], Section 6.
In all other cases, vCard instances MAY be matched at the discretion
of the synchronization engine.
7.1.2. Matching Property Instances
Property instances belonging to unmatched vCards MUST NOT be matched.
Property instances whose name (e.g., EMAIL, TEL, etc.) is not the
same MUST NOT be matched.
Property instances whose name is CLIENTPIDMAP are handled separately
and MUST NOT be matched. The synchronization MUST ensure that there
is consistency of CLIENTPIDMAPs among matched vCard instances.
Property instances belonging to matched vCards, whose name is the
same, and whose maximum cardinality is 1, MUST be matched.
Property instances belonging to matched vCards, whose name is the
same, and whose PID parameters match, MUST be matched. See
Section 7.1.3 for details on PID matching.
In all other cases, property instances MAY be matched at the
discretion of the synchronization engine.
7.1.3. PID Matching
Two PID values for which the first fields are equivalent represent
the same local value.
Two PID values representing the same local value and for which the
second fields point to CLIENTPIDMAP properties whose second field
URIs are equivalent (as specified in [RFC3986], Section 6) also
represent the same global value.
PID parameters for which at least one pair of their values represent
the same global value MUST be matched.
In all other cases, PID parameters MAY be matched at the discretion
of the synchronization engine.
For example, PID value "5.1", in the first vCard below, and PID value
"5.2", in the second vCard below, represent the same global value.
BEGIN:VCARD
VERSION:4.0
EMAIL;PID=4.2,5.1:jdoe@example.com
CLIENTPIDMAP:1;urn:uuid:3eef374e-7179-4196-a914-27358c3e6527
CLIENTPIDMAP:2;urn:uuid:42bcd5a7-1699-4514-87b4-056edf68e9cc
END:VCARD
BEGIN:VCARD
VERSION:4.0
EMAIL;PID=5.1,5.2:john@example.com
CLIENTPIDMAP:1;urn:uuid:0c75c629-6a8d-4d5e-a07f-1bb35846854d
CLIENTPIDMAP:2;urn:uuid:3eef374e-7179-4196-a914-27358c3e6527
END:VCARD
7.2. Example
7.2.1. Creation
The following simple vCard is first created on a given device.
BEGIN:VCARD
VERSION:4.0
UID:urn:uuid:4fbe8971-0bc3-424c-9c26-36c3e1eff6b1
FN;PID=1.1:J. Doe
N:Doe;J.;;;
EMAIL;PID=1.1:jdoe@example.com
CLIENTPIDMAP:1;urn:uuid:53e374d9-337e-4727-8803-a1e9c14e0556
END:VCARD
This new vCard is assigned the UID
"urn:uuid:4fbe8971-0bc3-424c-9c26-36c3e1eff6b1" by the creating
device. The FN and EMAIL properties are assigned the same local
value of 1, and this value is given global context by associating it
with "urn:uuid:53e374d9-337e-4727-8803-a1e9c14e0556", which
represents the creating device. We are at liberty to reuse the same
local value since instances of different properties will never be
matched. The N property has no PID because it is forbidden by its
maximum cardinality of 1.
7.2.2. Initial Sharing
This vCard is shared with a second device. Upon inspecting the UID
property, the second device understands that this is a new vCard
(i.e., unmatched) and thus the synchronization results in a simple
copy.
7.2.3. Adding and Sharing a Property
A new phone number is created on the first device, then the vCard is
shared with the second device. This is what the second device
receives:
BEGIN:VCARD
VERSION:4.0
UID:urn:uuid:4fbe8971-0bc3-424c-9c26-36c3e1eff6b1
FN;PID=1.1:J. Doe
N:Doe;J.;;;
EMAIL;PID=1.1:jdoe@example.com
TEL;PID=1.1;VALUE=uri:tel:+1-555-555-5555
CLIENTPIDMAP:1;urn:uuid:53e374d9-337e-4727-8803-a1e9c14e0556
END:VCARD
Upon inspecting the UID property, the second device matches the vCard
it received to the vCard that it already has stored. It then starts
comparing the properties of the two vCards in same-named pairs.
The FN properties are matched because the PID parameters have the
same global value. Since the property value is the same, no update
takes place.
The N properties are matched automatically because their maximum
cardinality is 1. Since the property value is the same, no update
takes place.
The EMAIL properties are matched because the PID parameters have the
same global value. Since the property value is the same, no update
takes place.
The TEL property in the new vCard is not matched to any in the stored
vCard because no property in the stored vCard has the same name.
Therefore, this property is copied from the new vCard to the stored
vCard.
The CLIENTPIDMAP property is handled separately by the
synchronization engine. It ensures that it is consistent with the
stored one. If it was not, the results would be up to the
synchronization engine, and thus undefined by this document.
7.2.4. Simultaneous Editing
A new email address and a new phone number are added to the vCard on
each of the two devices, and then a new synchronization event
happens. Here are the vCards that are communicated to each other:
BEGIN:VCARD
VERSION:4.0
UID:urn:uuid:4fbe8971-0bc3-424c-9c26-36c3e1eff6b1
FN;PID=1.1:J. Doe
N:Doe;J.;;;
EMAIL;PID=1.1:jdoe@example.com
EMAIL;PID=2.1:boss@example.com
TEL;PID=1.1;VALUE=uri:tel:+1-555-555-5555
TEL;PID=2.1;VALUE=uri:tel:+1-666-666-6666
CLIENTPIDMAP:1;urn:uuid:53e374d9-337e-4727-8803-a1e9c14e0556
END:VCARD
BEGIN:VCARD
VERSION:4.0
UID:urn:uuid:4fbe8971-0bc3-424c-9c26-36c3e1eff6b1
FN;PID=1.1:J. Doe
N:Doe;J.;;;
EMAIL;PID=1.1:jdoe@example.com
EMAIL;PID=2.2:ceo@example.com
TEL;PID=1.1;VALUE=uri:tel:+1-555-555-5555
TEL;PID=2.2;VALUE=uri:tel:+1-666-666-6666
CLIENTPIDMAP:1;urn:uuid:53e374d9-337e-4727-8803-a1e9c14e0556
CLIENTPIDMAP:2;urn:uuid:1f762d2b-03c4-4a83-9a03-75ff658a6eee
END:VCARD
On the first device, the same PID source identifier (1) is reused for
the new EMAIL and TEL properties. On the second device, a new source
identifier (2) is generated, and a corresponding CLIENTPIDMAP
property is created. It contains the second device's identifier,
"urn:uuid:1f762d2b-03c4-4a83-9a03-75ff658a6eee".
The new EMAIL properties are unmatched on both sides since the PID
global value is new in both cases. The sync thus results in a copy
on both sides.
Although the situation appears to be the same for the TEL properties,
in this case, the synchronization engine is particularly smart and
matches the two new TEL properties even though their PID global
values are different. Note that in this case, the rules of
Section 7.1.2 state that two properties MAY be matched at the
discretion of the synchronization engine. Therefore, the two
properties are merged.
All this results in the following vCard, which is stored on both
devices:
BEGIN:VCARD
VERSION:4.0
UID:urn:uuid:4fbe8971-0bc3-424c-9c26-36c3e1eff6b1
FN:J. Doe
N:Doe;J.;;;
EMAIL;PID=1.1:jdoe@example.com
EMAIL;PID=2.1:boss@example.com
EMAIL;PID=2.2:ceo@example.com
TEL;PID=1.1;VALUE=uri:tel:+1-555-555-5555
TEL;PID=2.1,2.2;VALUE=uri:tel:+1-666-666-6666
CLIENTPIDMAP:1;urn:uuid:53e374d9-337e-4727-8803-a1e9c14e0556
CLIENTPIDMAP:2;urn:uuid:1f762d2b-03c4-4a83-9a03-75ff658a6eee
END:VCARD
7.2.5. Global Context Simplification
The two devices finish their synchronization procedure by simplifying
their global contexts. Since they haven't talked to any other
device, the following vCard is for all purposes equivalent to the
above. It is also shorter.
BEGIN:VCARD
VERSION:4.0
UID:urn:uuid:4fbe8971-0bc3-424c-9c26-36c3e1eff6b1
FN:J. Doe
N:Doe;J.;;;
EMAIL;PID=1.1:jdoe@example.com
EMAIL;PID=2.1:boss@example.com
EMAIL;PID=3.1:ceo@example.com
TEL;PID=1.1;VALUE=uri:tel:+1-555-555-5555
TEL;PID=2.1;VALUE=uri:tel:+1-666-666-6666
CLIENTPIDMAP:1;urn:uuid:53e374d9-337e-4727-8803-a1e9c14e0556
END:VCARD
The details of global context simplification are unspecified by this
document. They are left up to the synchronization engine. This
example is merely intended to illustrate the possibility, which
investigating would be, in the author's opinion, worthwhile.
8. Example: Author's vCard
BEGIN:VCARD
VERSION:4.0
FN:Simon Perreault
N:Perreault;Simon;;;ing. jr,M.Sc.
BDAY:--0203
ANNIVERSARY:20090808T1430-0500
GENDER:M
LANG;PREF=1:fr
LANG;PREF=2:en
ORG;TYPE=work:Viagenie
ADR;TYPE=work:;Suite D2-630;2875 Laurier;
Quebec;QC;G1V 2M2;Canada
TEL;VALUE=uri;TYPE="work,voice";PREF=1:tel:+1-418-656-9254;ext=102
TEL;VALUE=uri;TYPE="work,cell,voice,video,text":tel:+1-418-262-6501
EMAIL;TYPE=work:simon.perreault@viagenie.ca
GEO;TYPE=work:geo:46.772673,-71.282945
KEY;TYPE=work;VALUE=uri:
http://www.viagenie.ca/simon.perreault/simon.asc
TZ:-0500
URL;TYPE=home:http://nomis80.org
END:VCARD
9. Security Considerations
o Internet mail is often used to transport vCards and is subject to
many well-known security attacks, including monitoring, replay,
and forgery. Care should be taken by any directory service in
allowing information to leave the scope of the service itself,
where any access controls or confidentiality can no longer be
guaranteed. Applications should also take care to display
directory data in a "safe" environment.
o vCards can carry cryptographic keys or certificates, as described
in Section 6.8.1.
o vCards often carry information that can be sensitive (e.g.,
birthday, address, and phone information). Although vCards have
no inherent authentication or confidentiality provisions, they can
easily be carried by any security mechanism that transfers MIME
objects to address authentication or confidentiality (e.g., S/MIME
[RFC5751], OpenPGP [RFC4880]). In cases where the confidentiality
or authenticity of information contained in vCard is a concern,
the vCard SHOULD be transported using one of these secure
mechanisms. The KEY property (Section 6.8.1) can be used to
transport the public key used by these mechanisms.
o The information in a vCard may become out of date. In cases where
the vitality of data is important to an originator of a vCard, the
SOURCE property (Section 6.1.3) SHOULD be specified. In addition,
the "REV" type described in Section 6.7.4 can be specified to
indicate the last time that the vCard data was updated.
o Many vCard properties may be used to transport URIs. Please refer
to [RFC3986], Section 7, for considerations related to URIs.
10. IANA Considerations
10.1. Media Type Registration
IANA has registered the following Media Type (in
<http://www.iana.org/>) and marked the text/directory Media Type as
DEPRECATED.
To: ietf-types@iana.org
Subject: Registration of media type text/vcard
Type name: text
Subtype name: vcard
Required parameters: none
Optional parameters: version
The "version" parameter is to be interpreted identically as the
VERSION vCard property. If this parameter is present, all vCards
in a text/vcard body part MUST have a VERSION property with value
identical to that of this MIME parameter.
"charset": as defined for text/plain [RFC2046]; encodings other
than UTF-8 [RFC3629] MUST NOT be used.
Encoding considerations: 8bit
Security considerations: See Section 9.
Interoperability considerations: The text/vcard media type is
intended to identify vCard data of any version. There are older
specifications of vCard [RFC2426][vCard21] still in common use.
While these formats are similar, they are not strictly compatible.
In general, it is necessary to inspect the value of the VERSION
property (see Section 6.7.9) for identifying the standard to which
a given vCard object conforms.
In addition, the following media types are known to have been used
to refer to vCard data. They should be considered deprecated in
favor of text/vcard.
* text/directory
* text/directory; profile=vcard
* text/x-vcard
Published specification: RFC 6350
Applications that use this media type: They are numerous, diverse,
and include mail user agents, instant messaging clients, address
book applications, directory servers, and customer relationship
management software.
Additional information:
Magic number(s):
File extension(s): .vcf .vcard
Macintosh file type code(s):
Person & email address to contact for further information: vCard
discussion mailing list <vcarddav@ietf.org>
Intended usage: COMMON
Restrictions on usage: none
Author: Simon Perreault
Change controller: IETF
10.2. Registering New vCard Elements
This section defines the process for registering new or modified
vCard elements (i.e., properties, parameters, value data types, and
values) with IANA.
10.2.1. Registration Procedure
The IETF has created a mailing list, vcarddav@ietf.org, which can be
used for public discussion of vCard element proposals prior to
registration. Use of the mailing list is strongly encouraged. The
IESG has appointed a designated expert who will monitor the
vcarddav@ietf.org mailing list and review registrations.
Registration of new vCard elements MUST be reviewed by the designated
expert and published in an RFC. A Standards Track RFC is REQUIRED
for the registration of new value data types that modify existing
properties. A Standards Track RFC is also REQUIRED for registration
of vCard elements that modify vCard elements previously documented in
a Standards Track RFC.
The registration procedure begins when a completed registration
template, defined in the sections below, is sent to vcarddav@ietf.org
and iana@iana.org. Within two weeks, the designated expert is
expected to tell IANA and the submitter of the registration whether
the registration is approved, approved with minor changes, or
rejected with cause. When a registration is rejected with cause, it
can be re-submitted if the concerns listed in the cause are
addressed. Decisions made by the designated expert can be appealed
to the IESG Applications Area Director, then to the IESG. They
follow the normal appeals procedure for IESG decisions.
Once the registration procedure concludes successfully, IANA creates
or modifies the corresponding record in the vCard registry. The
completed registration template is discarded.
An RFC specifying new vCard elements MUST include the completed
registration templates, which MAY be expanded with additional
information. These completed templates are intended to go in the
body of the document, not in the IANA Considerations section.
Finally, note that there is an XML representation for vCard defined
in [RFC6351]. An XML representation SHOULD be defined for new vCard
elements.
10.2.2. Vendor Namespace
The vendor namespace is used for vCard elements associated with
commercially available products. "Vendor" or "producer" are
construed as equivalent and very broadly in this context.
A registration may be placed in the vendor namespace by anyone who
needs to interchange files associated with the particular product.
However, the registration formally belongs to the vendor or
organization handling the vCard elements in the namespace being
registered. Changes to the specification will be made at their
request, as discussed in subsequent sections.
vCard elements belonging to the vendor namespace will be
distinguished by the "VND-" prefix. This is followed by an IANA-
registered Private Enterprise Number (PEN), a dash, and a vCard
element designation of the vendor's choosing (e.g., "VND-123456-
MUDPIE").
While public exposure and review of vCard elements to be registered
in the vendor namespace are not required, using the vcarddav@ietf.org
mailing list for review is strongly encouraged to improve the quality
of those specifications. Registrations in the vendor namespace may
be submitted directly to the IANA.
10.2.3. Registration Template for Properties
A property is defined by completing the following template.
Namespace: Empty for the global namespace, "VND-NNNN-" for a vendor-
specific property (where NNNN is replaced by the vendor's PEN).
Property name: The name of the property.
Purpose: The purpose of the property. Give a short but clear
description.
Value type: Any of the valid value types for the property value
needs to be specified. The default value type also needs to be
specified.
Cardinality: See Section 6.
Property parameters: Any of the valid property parameters for the
property MUST be specified.
Description: Any special notes about the property, how it is to be
used, etc.
Format definition: The ABNF for the property definition needs to be
specified.
Example(s): One or more examples of instances of the property need
to be specified.
10.2.4. Registration Template for Parameters
A parameter is defined by completing the following template.
Namespace: Empty for the global namespace, "VND-NNNN-" for a vendor-
specific property (where NNNN is replaced by the vendor's PEN).
Parameter name: The name of the parameter.
Purpose: The purpose of the parameter. Give a short but clear
description.
Description: Any special notes about the parameter, how it is to be
used, etc.
Format definition: The ABNF for the parameter definition needs to be
specified.
Example(s): One or more examples of instances of the parameter need
to be specified.
10.2.5. Registration Template for Value Data Types
A value data type is defined by completing the following template.
Value name: The name of the value type.
Purpose: The purpose of the value type. Give a short but clear
description.
Description: Any special notes about the value type, how it is to be
used, etc.
Format definition: The ABNF for the value type definition needs to
be specified.
Example(s): One or more examples of instances of the value type need
to be specified.
10.2.6. Registration Template for Values
A value is defined by completing the following template.
Value: The value literal.
Purpose: The purpose of the value. Give a short but clear
description.
Conformance: The vCard properties and/or parameters that can take
this value needs to be specified.
Example(s): One or more examples of instances of the value need to
be specified.
The following is a fictitious example of a registration of a vCard
value:
Value: supervisor
Purpose: It means that the related entity is the direct hierarchical
superior (i.e., supervisor or manager) of the entity this vCard
represents.
Conformance: This value can be used with the "TYPE" parameter
applied on the "RELATED" property.
Example(s):
RELATED;TYPE=supervisor:urn:uuid:f81d4fae-7dec-11d0-a765-00a0c91e6bf6
10.3. Initial vCard Elements Registries
The IANA has created and will maintain the following registries for
vCard elements with pointers to appropriate reference documents. The
registries are grouped together under the heading "vCard Elements".
10.3.4. Values Registries
Separate tables are used for property and parameter values.
The following table is to be used to initialize the property values
registry.
+----------+------------+-------------------------+
| Property | Value | Reference |
+----------+------------+-------------------------+
| BEGIN | VCARD | RFC 6350, Section 6.1.1 |
| END | VCARD | RFC 6350, Section 6.1.2 |
| KIND | individual | RFC 6350, Section 6.1.4 |
| KIND | group | RFC 6350, Section 6.1.4 |
| KIND | org | RFC 6350, Section 6.1.4 |
| KIND | location | RFC 6350, Section 6.1.4 |
+----------+------------+-------------------------+
The following table has been used to initialize the parameter values
registry.
11. Acknowledgments
The authors would like to thank Tim Howes, Mark Smith, and Frank
Dawson, the original authors of [RFC2425] and [RFC2426], Pete
Resnick, who got this effort started and provided help along the way,
as well as the following individuals who have participated in the
drafting, review, and discussion of this memo:
Aki Niemi, Andy Mabbett, Alexander Mayrhofer, Alexey Melnikov, Anil
Srivastava, Barry Leiba, Ben Fortuna, Bernard Desruisseaux, Bernie
Hoeneisen, Bjoern Hoehrmann, Caleb Richardson, Chris Bryant, Chris
Newman, Cyrus Daboo, Daisuke Miyakawa, Dan Brickley, Dan Mosedale,
Dany Cauchie, Darryl Champagne, Dave Thewlis, Filip Navara, Florian
Zeitz, Helge Hess, Jari Urpalainen, Javier Godoy, Jean-Luc Schellens,
Joe Hildebrand, Jose Luis Gayosso, Joseph Smarr, Julian Reschke,
Kepeng Li, Kevin Marks, Kevin Wu Won, Kurt Zeilenga, Lisa Dusseault,
Marc Blanchet, Mark Paterson, Markus Lorenz, Michael Haardt, Mike
Douglass, Nick Levinson, Peter K. Sheerin, Peter Mogensen, Peter
Saint-Andre, Renato Iannella, Rohit Khare, Sly Gryphon, Stephane
Bortzmeyer, Tantek Celik, and Zoltan Ordogh.
12. References
12.1. Normative References
[CCITT.X520.1988]
International Telephone and Telegraph Consultative
Committee, "Information Technology - Open Systems
Interconnection - The Directory: Selected Attribute
Types", CCITT Recommendation X.520, November 1988.
[IEEE.754.2008]
Institute of Electrical and Electronics Engineers,
"Standard for Binary Floating-Point Arithmetic",
IEEE Standard 754, August 2008.
[ISO.8601.2000]
International Organization for Standardization, "Data
elements and interchange formats - Information interchange
- Representation of dates and times", ISO Standard 8601,
December 2000.
[ISO.8601.2004]
International Organization for Standardization, "Data
elements and interchange formats - Information interchange
- Representation of dates and times", ISO Standard 8601,
December 2004.
[RFC2045] Freed, N. and N. Borenstein, "Multipurpose Internet Mail
Extensions (MIME) Part One: Format of Internet Message
Bodies", RFC 2045, November 1996.
[RFC2046] Freed, N. and N. Borenstein, "Multipurpose Internet Mail
Extensions (MIME) Part Two: Media Types", RFC 2046,
November 1996.
[RFC2119] Bradner, S., "Key words for use in RFCs to Indicate
Requirement Levels", BCP 14, RFC 2119, March 1997.
[RFC2739] Small, T., Hennessy, D., and F. Dawson, "Calendar
Attributes for vCard and LDAP", RFC 2739, January 2000.
[RFC3629] Yergeau, F., "UTF-8, a transformation format of ISO
10646", STD 63, RFC 3629, November 2003.
[RFC3966] Schulzrinne, H., "The tel URI for Telephone Numbers",
RFC 3966, December 2004.
[RFC3986] Berners-Lee, T., Fielding, R., and L. Masinter, "Uniform
Resource Identifier (URI): Generic Syntax", STD 66,
RFC 3986, January 2005.
[RFC4122] Leach, P., Mealling, M., and R. Salz, "A Universally
Unique IDentifier (UUID) URN Namespace", RFC 4122,
July 2005.
[RFC4288] Freed, N. and J. Klensin, "Media Type Specifications and
Registration Procedures", BCP 13, RFC 4288, December 2005.
[RFC5234] Crocker, D. and P. Overell, "Augmented BNF for Syntax
Specifications: ABNF", STD 68, RFC 5234, January 2008.
[RFC5322] Resnick, P., Ed., "Internet Message Format", RFC 5322,
October 2008.
[RFC5545] Desruisseaux, B., "Internet Calendaring and Scheduling
Core Object Specification (iCalendar)", RFC 5545,
September 2009.
[RFC5546] Daboo, C., "iCalendar Transport-Independent
Interoperability Protocol (iTIP)", RFC 5546,
December 2009.
[RFC5646] Phillips, A. and M. Davis, "Tags for Identifying
Languages", BCP 47, RFC 5646, September 2009.
[RFC5870] Mayrhofer, A. and C. Spanring, "A Uniform Resource
Identifier for Geographic Locations ('geo' URI)",
RFC 5870, June 2010.
[RFC6351] Perreault, S., "xCard: vCard XML Representation",
RFC 6351, August 2011.
[W3C.REC-xml-20081126]
Maler, E., Yergeau, F., Sperberg-McQueen, C., Paoli, J.,
and T. Bray, "Extensible Markup Language (XML) 1.0 (Fifth
Edition)", World Wide Web Consortium Recommendation REC-
xml-20081126, November 2008,
<http://www.w3.org/TR/2008/REC-xml-20081126>.
[xfn] Celik, T., Mullenweg, M., and E. Meyer, "XFN 1.1 profile",
<http://gmpg.org/xfn/11>.
12.2. Informative References
[IANA-TZ] Lear, E. and P. Eggert, "IANA Procedures for Maintaining
the Timezone Database", Work in Progress, May 2011.
[ISO9070] International Organization for Standardization,
"Information Processing - SGML support facilities -
Registration Procedures for Public Text Owner
Identifiers", ISO 9070, April 1991.
[RFC1738] Berners-Lee, T., Masinter, L., and M. McCahill, "Uniform
Resource Locators (URL)", RFC 1738, December 1994.
[RFC2397] Masinter, L., "The "data" URL scheme", RFC 2397,
August 1998.
[RFC2425] Howes, T., Smith, M., and F. Dawson, "A MIME Content-Type
for Directory Information", RFC 2425, September 1998.
[RFC2426] Dawson, F. and T. Howes, "vCard MIME Directory Profile",
RFC 2426, September 1998.
[RFC2616] Fielding, R., Gettys, J., Mogul, J., Frystyk, H.,
Masinter, L., Leach, P., and T. Berners-Lee, "Hypertext
Transfer Protocol -- HTTP/1.1", RFC 2616, June 1999.
[RFC3282] Alvestrand, H., "Content Language Headers", RFC 3282,
May 2002.
[RFC3406] Daigle, L., van Gulik, D., Iannella, R., and P. Faltstrom,
"Uniform Resource Names (URN) Namespace Definition
Mechanisms", BCP 66, RFC 3406, October 2002.
[RFC3536] Hoffman, P., "Terminology Used in Internationalization in
the IETF", RFC 3536, May 2003.
[RFC4770] Jennings, C. and J. Reschke, Ed., "vCard Extensions for
Instant Messaging (IM)", RFC 4770, January 2007.
[RFC4880] Callas, J., Donnerhacke, L., Finney, H., Shaw, D., and R.
Thayer, "OpenPGP Message Format", RFC 4880, November 2007.
[RFC5335bis]
Yang, A. and S. Steele, "Internationalized Email Headers",
Work in Progress, July 2011.
[RFC5751] Ramsdell, B. and S. Turner, "Secure/Multipurpose Internet
Mail Extensions (S/MIME) Version 3.2 Message
Specification", RFC 5751, January 2010.
[RFC6068] Duerst, M., Masinter, L., and J. Zawinski, "The 'mailto'
URI Scheme", RFC 6068, October 2010.
[TZ-DB] Olson, A., "Time zone code and data",
<ftp://elsie.nci.nih.gov/pub/>.
[vCard21] Internet Mail Consortium, "vCard - The Electronic Business
Card Version 2.1", September 1996.
Appendix A. Differences from RFCs 2425 and 2426
This appendix contains a high-level overview of the major changes
that have been made in the vCard specification from RFCs 2425 and
2426. It is incomplete, as it only lists the most important changes.
A.1. New Structure
o [RFC2425] and [RFC2426] have been merged.
o vCard is now not only a MIME type but a stand-alone format.
o A proper MIME type registration form has been included.
o UTF-8 is now the only possible character set.
o New vCard elements can be registered from IANA.
A.2. Removed Features
o The CONTEXT and CHARSET parameters are no more.
o The NAME, MAILER, LABEL, and CLASS properties are no more.
o The "intl", "dom", "postal", and "parcel" TYPE parameter values
for the ADR property have been removed.
o In-line vCards (such as the value of the AGENT property) are no
longer supported.
A.3. New Properties and Parameters
o The KIND, GENDER, LANG, ANNIVERSARY, XML, and CLIENTPIDMAP
properties have been added.
o [RFC2739], which defines the FBURL, CALADRURI, CAPURI, and CALURI
properties, has been merged in.
o [RFC4770], which defines the IMPP property, has been merged in.
o The "work" and "home" TYPE parameter values are now applicable to
many more properties.
o The "pref" value of the TYPE parameter is now a parameter of its
own, with a positive integer value indicating the level of
preference.
o The ALTID and PID parameters have been added.
o The MEDIATYPE parameter has been added and replaces the TYPE
parameter when it was used for indicating the media type of the
property's content.
Author's Address
Simon Perreault
Viagenie
2875 Laurier, suite D2-630
Quebec, QC G1V 2M2
Canada
Phone: +1 418 656 9254
EMail: simon.perreault@viagenie.ca
URI: http://www.viagenie.ca