tech-invite   World Map     

IETF     RFCs     Groups     SIP     ABNFs    |    3GPP     Specs     Glossaries     Architecture     IMS     UICC    |    search     info

RFC 6350

 
 
 

vCard Format Specification

Part 3 of 3, p. 51 to 74
Prev RFC Part

 


prevText      Top      Up      ToC       Page 51 
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.

Top      Up      ToC       Page 52 
   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.

Top      Up      ToC       Page 53 
     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.

Top      Up      ToC       Page 54 
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:

Top      Up      ToC       Page 55 
     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:

Top      Up      ToC       Page 56 
     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

Top      Up      ToC       Page 57 
    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.

Top      Up      ToC       Page 58 
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

Top      Up      ToC       Page 59 
   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.

Top      Up      ToC       Page 60 
   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.

Top      Up      ToC       Page 61 
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.

Top      Up      ToC       Page 62 
   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.

Top      Up      ToC       Page 63 
   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".

Top      Up      ToC       Page 64 
10.3.1.  Properties Registry

   The following table has been used to initialize the properties
   registry.

          +-----------+--------------+-------------------------+
          | Namespace | Property     | Reference               |
          +-----------+--------------+-------------------------+
          |           | SOURCE       | RFC 6350, Section 6.1.3 |
          |           | KIND         | RFC 6350, Section 6.1.4 |
          |           | XML          | RFC 6350, Section 6.1.5 |
          |           | FN           | RFC 6350, Section 6.2.1 |
          |           | N            | RFC 6350, Section 6.2.2 |
          |           | NICKNAME     | RFC 6350, Section 6.2.3 |
          |           | PHOTO        | RFC 6350, Section 6.2.4 |
          |           | BDAY         | RFC 6350, Section 6.2.5 |
          |           | ANNIVERSARY  | RFC 6350, Section 6.2.6 |
          |           | GENDER       | RFC 6350, Section 6.2.7 |
          |           | ADR          | RFC 6350, Section 6.3.1 |
          |           | TEL          | RFC 6350, Section 6.4.1 |
          |           | EMAIL        | RFC 6350, Section 6.4.2 |
          |           | IMPP         | RFC 6350, Section 6.4.3 |
          |           | LANG         | RFC 6350, Section 6.4.4 |
          |           | TZ           | RFC 6350, Section 6.5.1 |
          |           | GEO          | RFC 6350, Section 6.5.2 |
          |           | TITLE        | RFC 6350, Section 6.6.1 |
          |           | ROLE         | RFC 6350, Section 6.6.2 |
          |           | LOGO         | RFC 6350, Section 6.6.3 |
          |           | ORG          | RFC 6350, Section 6.6.4 |
          |           | MEMBER       | RFC 6350, Section 6.6.5 |
          |           | RELATED      | RFC 6350, Section 6.6.6 |
          |           | CATEGORIES   | RFC 6350, Section 6.7.1 |
          |           | NOTE         | RFC 6350, Section 6.7.2 |
          |           | PRODID       | RFC 6350, Section 6.7.3 |
          |           | REV          | RFC 6350, Section 6.7.4 |
          |           | SOUND        | RFC 6350, Section 6.7.5 |
          |           | UID          | RFC 6350, Section 6.7.6 |
          |           | CLIENTPIDMAP | RFC 6350, Section 6.7.7 |
          |           | URL          | RFC 6350, Section 6.7.8 |
          |           | VERSION      | RFC 6350, Section 6.7.9 |
          |           | KEY          | RFC 6350, Section 6.8.1 |
          |           | FBURL        | RFC 6350, Section 6.9.1 |
          |           | CALADRURI    | RFC 6350, Section 6.9.2 |
          |           | CALURI       | RFC 6350, Section 6.9.3 |
          +-----------+--------------+-------------------------+

Top      Up      ToC       Page 65 
10.3.2.  Parameters Registry

   The following table has been used to initialize the parameters
   registry.

            +-----------+-----------+------------------------+
            | Namespace | Parameter | Reference              |
            +-----------+-----------+------------------------+
            |           | LANGUAGE  | RFC 6350, Section 5.1  |
            |           | VALUE     | RFC 6350, Section 5.2  |
            |           | PREF      | RFC 6350, Section 5.3  |
            |           | ALTID     | RFC 6350, Section 5.4  |
            |           | PID       | RFC 6350, Section 5.5  |
            |           | TYPE      | RFC 6350, Section 5.6  |
            |           | MEDIATYPE | RFC 6350, Section 5.7  |
            |           | CALSCALE  | RFC 6350, Section 5.8  |
            |           | SORT-AS   | RFC 6350, Section 5.9  |
            |           | GEO       | RFC 6350, Section 5.10 |
            |           | TZ        | RFC 6350, Section 5.11 |
            +-----------+-----------+------------------------+

10.3.3.  Value Data Types Registry

   The following table has been used to initialize the parameters
   registry.

              +------------------+-------------------------+
              | Value Data Type  | Reference               |
              +------------------+-------------------------+
              | BOOLEAN          | RFC 6350, Section 4.4   |
              | DATE             | RFC 6350, Section 4.3.1 |
              | DATE-AND-OR-TIME | RFC 6350, Section 4.3.4 |
              | DATE-TIME        | RFC 6350, Section 4.3.3 |
              | FLOAT            | RFC 6350, Section 4.6   |
              | INTEGER          | RFC 6350, Section 4.5   |
              | LANGUAGE-TAG     | RFC 6350, Section 4.8   |
              | TEXT             | RFC 6350, Section 4.1   |
              | TIME             | RFC 6350, Section 4.3.2 |
              | TIMESTAMP        | RFC 6350, Section 4.3.5 |
              | URI              | RFC 6350, Section 4.2   |
              | UTC-OFFSET       | RFC 6350, Section 4.7   |
              +------------------+-------------------------+

Top      Up      ToC       Page 66 
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.

Top      Up      ToC       Page 67 
   +------------------------+-----------+--------------+---------------+
   | Property               | Parameter | Value        | Reference     |
   +------------------------+-----------+--------------+---------------+
   | FN, NICKNAME, PHOTO,   | TYPE      | work         | RFC 6350,     |
   | ADR, TEL, EMAIL, IMPP, |           |              | Section 5.6   |
   | LANG, TZ, GEO, TITLE,  |           |              |               |
   | ROLE, LOGO, ORG,       |           |              |               |
   | RELATED, CATEGORIES,   |           |              |               |
   | NOTE, SOUND, URL, KEY, |           |              |               |
   | FBURL, CALADRURI, and  |           |              |               |
   | CALURI                 |           |              |               |
   | FN, NICKNAME, PHOTO,   | TYPE      | home         | RFC 6350,     |
   | ADR, TEL, EMAIL, IMPP, |           |              | Section 5.6   |
   | LANG, TZ, GEO, TITLE,  |           |              |               |
   | ROLE, LOGO, ORG,       |           |              |               |
   | RELATED, CATEGORIES,   |           |              |               |
   | NOTE, SOUND, URL, KEY, |           |              |               |
   | FBURL, CALADRURI, and  |           |              |               |
   | CALURI                 |           |              |               |
   | TEL                    | TYPE      | text         | RFC 6350,     |
   |                        |           |              | Section 6.4.1 |
   | TEL                    | TYPE      | voice        | RFC 6350,     |
   |                        |           |              | Section 6.4.1 |
   | TEL                    | TYPE      | fax          | RFC 6350,     |
   |                        |           |              | Section 6.4.1 |
   | TEL                    | TYPE      | cell         | RFC 6350,     |
   |                        |           |              | Section 6.4.1 |
   | TEL                    | TYPE      | video        | RFC 6350,     |
   |                        |           |              | Section 6.4.1 |
   | TEL                    | TYPE      | pager        | RFC 6350,     |
   |                        |           |              | Section 6.4.1 |
   | TEL                    | TYPE      | textphone    | RFC 6350,     |
   |                        |           |              | Section 6.4.1 |
   | BDAY, ANNIVERSARY      | CALSCALE  | gregorian    | RFC 6350,     |
   |                        |           |              | Section 5.8   |
   | RELATED                | TYPE      | contact      | RFC 6350,     |
   |                        |           |              | Section 6.6.6 |
   |                        |           |              | and [xfn]     |
   | RELATED                | TYPE      | acquaintance | RFC 6350,     |
   |                        |           |              | Section 6.6.6 |
   |                        |           |              | and [xfn]     |
   | RELATED                | TYPE      | friend       | RFC 6350,     |
   |                        |           |              | Section 6.6.6 |
   |                        |           |              | and [xfn]     |
   | RELATED                | TYPE      | met          | RFC 6350,     |
   |                        |           |              | Section 6.6.6 |
   |                        |           |              | and [xfn]     |

Top      Up      ToC       Page 68 
   | RELATED                | TYPE      | co-worker    | RFC 6350,     |
   |                        |           |              | Section 6.6.6 |
   |                        |           |              | and [xfn]     |
   | RELATED                | TYPE      | colleague    | RFC 6350,     |
   |                        |           |              | Section 6.6.6 |
   |                        |           |              | and [xfn]     |
   | RELATED                | TYPE      | co-resident  | RFC 6350,     |
   |                        |           |              | Section 6.6.6 |
   |                        |           |              | and [xfn]     |
   | RELATED                | TYPE      | neighbor     | RFC 6350,     |
   |                        |           |              | Section 6.6.6 |
   |                        |           |              | and [xfn]     |
   | RELATED                | TYPE      | child        | RFC 6350,     |
   |                        |           |              | Section 6.6.6 |
   |                        |           |              | and [xfn]     |
   | RELATED                | TYPE      | parent       | RFC 6350,     |
   |                        |           |              | Section 6.6.6 |
   |                        |           |              | and [xfn]     |
   | RELATED                | TYPE      | sibling      | RFC 6350,     |
   |                        |           |              | Section 6.6.6 |
   |                        |           |              | and [xfn]     |
   | RELATED                | TYPE      | spouse       | RFC 6350,     |
   |                        |           |              | Section 6.6.6 |
   |                        |           |              | and [xfn]     |
   | RELATED                | TYPE      | kin          | RFC 6350,     |
   |                        |           |              | Section 6.6.6 |
   |                        |           |              | and [xfn]     |
   | RELATED                | TYPE      | muse         | RFC 6350,     |
   |                        |           |              | Section 6.6.6 |
   |                        |           |              | and [xfn]     |
   | RELATED                | TYPE      | crush        | RFC 6350,     |
   |                        |           |              | Section 6.6.6 |
   |                        |           |              | and [xfn]     |
   | RELATED                | TYPE      | date         | RFC 6350,     |
   |                        |           |              | Section 6.6.6 |
   |                        |           |              | and [xfn]     |
   | RELATED                | TYPE      | sweetheart   | RFC 6350,     |
   |                        |           |              | Section 6.6.6 |
   |                        |           |              | and [xfn]     |
   | RELATED                | TYPE      | me           | RFC 6350,     |
   |                        |           |              | Section 6.6.6 |
   |                        |           |              | and [xfn]     |
   | RELATED                | TYPE      | agent        | RFC 6350,     |
   |                        |           |              | Section 6.6.6 |
   | RELATED                | TYPE      | emergency    | RFC 6350,     |
   |                        |           |              | Section 6.6.6 |
   +------------------------+-----------+--------------+---------------+

Top      Up      ToC       Page 69 
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.

Top      Up      ToC       Page 70 
   [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.

Top      Up      ToC       Page 71 
   [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.

Top      Up      ToC       Page 72 
   [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.

Top      Up      ToC       Page 73 
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.

Top      Up      ToC       Page 74 
   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