VCard

Last updated
vCard
Filename extension
.vcf, .vcard
Internet media type
text/vcard
Type code vCrd
Uniform Type Identifier (UTI) public.vcard
Developed byCreated by Versit Consortium, all rights transferred in 1996 to Internet Mail Consortium, all rights transferred in 2004 to CalConnect
Type of formatElectronic business card
Container for Contact information
Standard RFC  6350

vCard, also known as VCF (Virtual Contact File), is a file format standard for electronic business cards. vCards can be attached to e-mail messages, sent via Multimedia Messaging Service (MMS), on the World Wide Web, instant messaging, NFC or through QR code. They can contain name and address information, phone numbers, e-mail addresses, URLs, logos, photographs, and audio clips.

Contents

vCard is used as a data interchange format in smartphone contacts, personal digital assistants (PDAs), personal information managers (PIMs) and customer relationship management systems (CRMs). To accomplish these data interchange applications, other "vCard variants" have been used and proposed as "variant standards", each for its specific niche: XML representation, JSON representation, or web pages.

Overview

The standard Internet media type (MIME type) for a vCard has varied with each version of the specification. [1]

vCards can be embedded in web pages.

RDFa with the vCard Ontology can be used in HTML and various XML-family languages, e.g. SVG, MathML.

jCard, "The JSON Format for vCard" is a standard proposal of 2014 in RFC   7095. This proposal has not yet become a widely used standard.[ when? ] The RFC 7095 does not use real JSON objects, but rather uses arrays of sequence-dependent tag-value pairs (like an XML file).

hCard is a microformat that allows a vCard to be embedded inside an HTML page. It makes use of CSS class names to identify each vCard property. Normal HTML markup and CSS styling can be used alongside the hCard class names without affecting the webpage's ability to be parsed by a hCard parser. h-card is the microformats2 update to hCard.

MeCard is a variation of vCard made by NTT DoCoMo for smartphones using QR Codes. It uses a very similar syntax, but in a more consolidated way as the storage space on QR Codes is limited. It's also limited in the amount of data that can be stored, not just by the standard but the size of QR Codes.

Example

An example of a simple vCard (from RFC 6350 of August, 2011, abbreviated):

 BEGIN:VCARD  VERSION:4.0  FN:Simon Perreault  N:Perreault;Simon;;;ing. jr,M.Sc.  BDAY:--0203  GENDER:M  EMAIL;TYPE=work:simon.perreault@viagenie.ca  END:VCARD

This is the vCard for "Simon Perreault" (the author of RFC 6350), with his birthday (omitting the year), email address and gender.

Properties

vCard defines the following property types.

All vCards begin with BEGIN:VCARD and end with END:VCARD. All vCards must contain the VERSION property, which specifies the vCard version. VERSION must come immediately after BEGIN, except in the vCard 2.1 standard, which allows it to be anywhere in the vCard. Otherwise, properties can be defined in any order.

NameProperty presenceDescriptionExample
v. 2.1v. 3.0v. 4.0
ADROptionalOptionalOptionalA structured representation of the physical delivery address for the vCard object.ADR;TYPE=home:;;123 Main St.;Springfield;IL;12345;USA
AGENTOptionalOptionalUndefinedInformation about another person who will act on behalf of the vCard object. Typically this would be an area administrator, assistant, or secretary for the individual. Can be either a URL or an embedded vCard.AGENT:http://mi6.gov.uk/007
ANNIVERSARYUndefinedUndefinedOptionalDefines the person's anniversary.ANNIVERSARY:19901021
BDAYOptionalOptionalOptionalDate of birth of the individual associated with the vCard.BDAY:19700310
BEGINRequiredRequiredRequiredAll vCards must start with this property.BEGIN:VCARD
CALADRURIUndefinedUndefinedOptionalA URL to use for sending a scheduling request to the person's calendar.CALADRURI:http://example.com/calendar/jdoe
CALURIUndefinedUndefinedOptionalA URL to the person's calendar.CALURI:http://example.com/calendar/jdoe
CATEGORIESOptionalOptionalOptionalA list of "tags" that can be used to describe the object represented by this vCard.CATEGORIES:swimmer,biker
CLASSUndefinedOptionalUndefinedDescribes the sensitivity of the information in the vCard.CLASS:public
CLIENTPIDMAPUndefinedUndefinedOptionalUsed for synchronizing different revisions of the same vCard.CLIENTPIDMAP:1;urn:uuid:3df403f4-5924-4bb7-b077-3c711d9eb34b
EMAILOptionalOptionalOptionalThe address for electronic mail communication with the vCard object.EMAIL:johndoe@hotmail.com
ENDRequiredRequiredRequiredAll vCards must end with this property.END:VCARD
FBURLUndefinedUndefinedOptionalDefines a URL that shows when the person is "free" or "busy" on their calendar.FBURL:http://example.com/fb/jdoe
FNOptionalRequiredRequiredThe formatted name string associated with the vCard object.FN:Dr. John Doe
GENDERUndefinedUndefinedOptionalDefines the person's gender.GENDER:F
GEOOptionalOptionalOptionalSpecifies a latitude and longitude.2.1, 3.0: GEO:39.95;-75.1667
4.0: GEO:geo:39.95,-75.1667
IMPPUndefinedMaybeOptionalDefines an instant messenger handle.

This property was introduced in a separate RFC when the latest vCard version was 3.0. Therefore, 3.0 vCards might use this property without otherwise declaring it.

IMPP:aim:johndoe@aol.com
KEYOptionalOptionalOptionalThe public encryption key associated with the vCard object. It may point to an external URL, may be plain text, or may be embedded in the vCard as a Base64 encoded block of text.2.1: KEY;PGP:http://example.com/key.pgp
2.1: KEY;PGP;ENCODING=BASE64:[base64-data]
3.0: KEY;TYPE=PGP:http://example.com/key.pgp
3.0: KEY;TYPE=PGP;ENCODING=b:[base64-data]
4.0: KEY;MEDIATYPE=application/pgp-keys:http://example.com/key.pgp
4.0: KEY:data:application/pgp-keys;base64,[base64-data]
KINDUndefinedUndefinedOptionalDefines the type of entity that this vCard represents: 'application', 'individual', 'group', 'location' or 'organization'; 'x-*' values may be used for experimental purposes. [2] [3] KIND:individual
LABELOptionalOptionalIncorporated withoutRepresents the actual text that should be put on the mailing label when delivering a physical package to the person/object associated with the vCard (related to the ADR property).

Not supported in version 4.0. Instead, this information is stored in the LABEL parameter of the ADR property. Example: ADR;TYPE=home;LABEL="123 Main St\nNew York, NY 12345":;;123 Main St;New York;NY;12345;USA

LABEL;TYPE=HOME:123 Main St.\nSpringfield, IL 12345\nUSA
LANGUndefinedUndefinedOptionalDefines a language that the person speaks.LANG:fr-CA
LOGOOptionalOptionalOptionalAn image or graphic of the logo of the organization that is associated with the individual to which the vCard belongs. It may point to an external URL or may be embedded in the vCard as a Base64 encoded block of text.2.1: LOGO;PNG:http://example.com/logo.png
2.1: LOGO;PNG;ENCODING=BASE64:[base64-data]
3.0: LOGO;TYPE=PNG:http://example.com/logo.png
3.0: LOGO;TYPE=PNG;ENCODING=b:[base64-data]
4.0: LOGO;MEDIATYPE=image/png:http://example.com/logo.png
4.0: LOGO;ENCODING=BASE64;TYPE=PNG:[base64-data]
MAILEROptionalOptionalUndefinedType of email program used.MAILER:Thunderbird
MEMBERUndefinedUndefinedOptionalDefines a member that is part of the group that this vCard represents. Acceptable values include:
  • a "mailto:" URL containing an email address
  • a UID which references the member's own vCard
The KIND property must be set to "group" in order to use this property.
MEMBER:urn:uuid:03a0e51f-d1aa-4385-8a53-e29025acd8af
NRequiredRequiredOptionalA structured representation of the name of the person, place or thing associated with the vCard object. Structure recognizes, in order separated by semicolons: Family Name, Given Name, Additional/Middle Names, Honorific Prefixes, and Honorific Suffixes [4] N:Doe;John;;Dr;
NAMEUndefinedOptionalUndefinedProvides a textual representation of the SOURCE property.
NICKNAMEUndefinedOptionalOptionalOne or more descriptive/familiar names for the object represented by this vCard.NICKNAME:Jon,Johnny
NOTEOptionalOptionalOptionalSpecifies supplemental information or a comment that is associated with the vCard.NOTE:I am proficient in Tiger-Crane Style,\nand I am more than proficient in the exquisite art of the Samurai sword.
ORGOptionalOptionalOptionalThe name and optionally the unit(s) of the organization associated with the vCard object. This property is based on the X.520 Organization Name attribute and the X.520 Organization Unit attribute.ORG:Google;GMail Team;Spam Detection Squad
PHOTOOptionalOptionalOptionalAn image or photograph of the individual associated with the vCard. It may point to an external URL or may be embedded in the vCard as a Base64 encoded block of text.2.1: PHOTO;JPEG:http://example.com/photo.jpg
2.1: PHOTO;JPEG;ENCODING=BASE64:[base64-data]
3.0: PHOTO;TYPE=JPEG;VALUE=URI:http://example.com/photo.jpg
3.0: PHOTO;TYPE=JPEG;ENCODING=b:[base64-data]
4.0: PHOTO;MEDIATYPE=image/jpeg:http://example.com/photo.jpg
4.0: PHOTO;ENCODING=BASE64;TYPE=JPEG:[base64-data]
PRODIDUndefinedOptionalOptionalThe identifier for the product that created the vCard object.PRODID:-//ONLINE DIRECTORY//NONSGML Version 1//EN
PROFILEOptionalOptionalUndefinedStates that the vCard is a vCard.PROFILE:VCARD
RELATEDUndefinedUndefinedOptionalAnother entity that the person is related to. Acceptable values include:
  • a "mailto:" URL containing an email address
  • a UID which references the person's own vCard
  • a text value used to specify textual information
RELATED;TYPE=friend:urn:uuid:03a0e51f-d1aa-4385-8a53-e29025acd8af
REVOptionalOptionalOptionalA timestamp for the last time the vCard was updated.REV:20121201T134211Z
ROLEOptionalOptionalOptionalThe role, occupation, or business category of the vCard object within an organization.ROLE:Executive
SORT-STRINGUndefinedOptionalIncorporated withoutDefines a string that should be used when an application sorts this vCard in some way.

Not supported in version 4.0. Instead, this information is stored in the SORT-AS parameter of the N and/or ORG properties.

SORT-STRING:Doe
SOUNDOptionalOptionalOptionalBy default, if this property is not grouped with other properties it specifies the pronunciation of the FN property of the vCard object. It may point to an external URL or may be embedded in the vCard as a Base64 encoded block of text.2.1: SOUND;OGG:http://example.com/sound.ogg
2.1: SOUND;OGG;ENCODING=BASE64:[base64-data]
3.0: SOUND;TYPE=OGG:http://example.com/sound.ogg
3.0: SOUND;TYPE=OGG;ENCODING=b:[base64-data]
4.0: SOUND;MEDIATYPE=audio/ogg:http://example.com/sound.ogg
4.0: SOUND:data:audio/ogg;base64,[base64-data]
SOURCEOptionalOptionalOptionalA URL that can be used to get the latest version of this vCard.SOURCE:http://johndoe.com/vcard.vcf
TELOptionalOptionalOptionalThe canonical number string for a telephone number for telephony communication with the vCard object.TEL;TYPE=cell:(123) 555-5832
TITLEOptionalOptionalOptionalSpecifies the job title, functional position or function of the individual associated with the vCard object within an organization.TITLE:V.P. Research and Development
TZOptionalOptionalOptionalThe time zone of the vCard object.2.1, 3.0: TZ:-0500
4.0: TZ:America/New_York
UIDOptionalOptionalOptionalSpecifies a value that represents a persistent, globally unique identifier associated with the object.UID:urn:uuid:da418720-3754-4631-a169-db89a02b831b
URLOptionalOptionalOptionalA URL pointing to a website that represents the person in some way.URL:http://www.johndoe.com
VERSIONRequiredRequiredRequiredThe version of the vCard specification. In version 4.0, this must come right after the BEGIN property.VERSION:3.0
XMLUndefinedUndefinedOptionalAny XML data that is attached to the vCard. This is used if the vCard was encoded in XML (xCard standard) and the XML document contained elements which are not part of the xCard standard.XML:<b>Not an xCard XML element</b>

See also

Related Research Articles

<span class="mw-page-title-main">HTML</span> HyperText Markup Language

HyperText Markup Language or HTML is the standard markup language for documents designed to be displayed in a web browser. It defines the content and structure of web content. It is often assisted by technologies such as Cascading Style Sheets (CSS) and scripting languages such as JavaScript.

In computing, serialization is the process of translating a data structure or object state into a format that can be stored or transmitted and reconstructed later. When the resulting series of bits is reread according to the serialization format, it can be used to create a semantically identical clone of the original object. For many complex objects, such as those that make extensive use of references, this process is not straightforward. Serialization of object-oriented objects does not include any of their associated methods with which they were previously linked.

<span class="mw-page-title-main">XML</span> Markup language by the W3C for encoding of data

Extensible Markup Language (XML) is a markup language and file format for storing, transmitting, and reconstructing arbitrary data. It defines a set of rules for encoding documents in a format that is both human-readable and machine-readable. The World Wide Web Consortium's XML 1.0 Specification of 1998 and several other related specifications—all of them free open standards—define XML.

In computer programming, Base64 is a group of binary-to-text encoding schemes that transforms binary data into a sequence of printable characters, limited to a set of 64 unique characters. More specifically, the source binary data is taken 6 bits at a time, then this group of 6 bits is mapped to one of 64 unique characters.

The Internet Calendaring and Scheduling Core Object Specification (iCalendar) is a media type which allows users to store and exchange calendaring and scheduling information such as events, to-dos, journal entries, and free/busy information, and together with its associated standards has been a cornerstone of the standardization and interoperability of digital calendars across different vendors. Files formatted according to the specification usually have an extension of .ics. With supporting software, such as an email reader or calendar application, recipients of an iCalendar data file can respond to the sender easily or counter-propose another meeting date/time. The file format is specified in a proposed Internet standard for calendar data exchange. The standard and file type are sometimes referred to as "iCal", which was the name of the Apple Inc. calendar program until 2012, which provides one of the implementations of the standard.

YAML(see § History and name) is a human-readable data serialization language. It is commonly used for configuration files and in applications where data is being stored or transmitted. YAML targets many of the same communications applications as Extensible Markup Language (XML) but has a minimal syntax that intentionally differs from Standard Generalized Markup Language (SGML). It uses Python-style indentation to indicate nesting and does not require quotes around most string values.

<span class="mw-page-title-main">Atom (web standard)</span> Web standards

The name Atom applies to a pair of related Web standards. The Atom Syndication Format is an XML language used for web feeds, while the Atom Publishing Protocol is a simple HTTP-based protocol for creating and updating web resources.

Web standards are the formal, non-proprietary standards and other technical specifications that define and describe aspects of the World Wide Web. In recent years, the term has been more frequently associated with the trend of endorsing a set of standardized best practices for building web sites, and a philosophy of web design and development that includes those methods.

<span class="mw-page-title-main">BEEP</span> Framework for creating network application protocols

The Blocks Extensible Exchange Protocol (BEEP) is a framework for creating network application protocols. BEEP includes building blocks like framing, pipelining, multiplexing, reporting and authentication for connection and message-oriented peer-to-peer (P2P) protocols with support of asynchronous full-duplex communication.

<span class="mw-page-title-main">JSON</span> Open standard file format and data interchange

JSON is an open standard file format and data interchange format that uses human-readable text to store and transmit data objects consisting of attribute–value pairs and arrays. It is a commonly used data format with diverse uses in electronic data interchange, including that of web applications with servers.

Microformats (μF) are a set of defined HTML classes created to serve as consistent and descriptive metadata about an element, designating it as representing a certain type of data. They allow software to process the information reliably by having set classes refer to a specific type of data rather than being arbitrary.

In the macOS, iOS, NeXTSTEP, and GNUstep programming frameworks, property list files are files that store serialized objects. Property list files use the filename extension .plist, and thus are often referred to as p-list files.

hCard is a microformat for publishing the contact details of people, companies, organizations, and places, in HTML, Atom, RSS, or arbitrary XML. The hCard microformat does this using a 1:1 representation of vCard properties and values, identified using HTML classes and rel attributes.

A media type is a two-part identifier for file formats and format contents transmitted on the Internet. Their purpose is somewhat similar to file extensions in that they identify the intended data format. The Internet Assigned Numbers Authority (IANA) is the official authority for the standardization and publication of these classifications. Media types were originally defined in Request for Comments RFC 2045 (MIME) Part One: Format of Internet Message Bodies in November 1996 as a part of the MIME specification, for denoting type of email message content and attachments; hence the original name, MIME type. Media types are also used by other internet protocols such as HTTP and document file formats such as HTML, for similar purposes.

Yet Another Next Generation is a data modeling language for the definition of data sent over network management protocols such as the NETCONF and RESTCONF. The YANG data modeling language is maintained by the NETMOD working group in the Internet Engineering Task Force (IETF) and initially was published as RFC 6020 in October 2010, with an update in August 2016. The data modeling language can be used to model both configuration data as well as state data of network elements. Furthermore, YANG can be used to define the format of event notifications emitted by network elements and it allows data modelers to define the signature of remote procedure calls that can be invoked on network elements via the NETCONF protocol. The language, being protocol independent, can then be converted into any encoding format, e.g. XML or JSON, that the network configuration protocol supports.

GeoJSON is an open standard format designed for representing simple geographical features, along with their non-spatial attributes. It is based on the JSON format.

sabre/dav is an open source WebDAV server, developed by fruux and built in PHP. It is an implementation of the WebDAV protocol, providing a native PHP server implementation which operates on Apache 2 and Nginx web servers.

Hypertext Application Language (HAL) is a convention for defining hypermedia such as links to external resources within JSON or XML code. It is documented in an Internet Draft, with the latest version 11 published the 10th of October 2023. The standard was initially proposed in June 2012 specifically for use with JSON and has since become available in two variations, JSON and XML. The two associated MIME types are media type: application/hal+xml and media type: application/hal+json.

JSON streaming comprises communications protocols to delimit JSON objects built upon lower-level stream-oriented protocols, that ensures individual JSON objects are recognized, when the server and clients use the same one. This is necessary as JSON is a non-concatenative protocol.

ISO/IEC 20248Automatic Identification and Data Capture Techniques – Data Structures – Digital Signature Meta Structure is an international standard specification under development by ISO/IEC JTC 1/SC 31/WG 2. This development is an extension of SANS 1368, which is the current published specification. ISO/IEC 20248 and SANS 1368 are equivalent standard specifications. SANS 1368 is a South African national standard developed by the South African Bureau of Standards.

References