1
2
3
4
5
6
7Internet Engineering Task Force (IETF) S. Perreault
8Request for Comments: 6350 Viagenie
9Obsoletes: 2425, 2426, 4770 August 2011
10Updates: 2739
11Category: Standards Track
12ISSN: 2070-1721
13
14
15 vCard Format Specification
16
17Abstract
18
19 This document defines the vCard data format for representing and
20 exchanging a variety of information about individuals and other
21 entities (e.g., formatted and structured name and delivery addresses,
22 email address, multiple telephone numbers, photograph, logo, audio
23 clips, etc.). This document obsoletes RFCs 2425, 2426, and 4770, and
24 updates RFC 2739.
25
26Status of This Memo
27
28 This is an Internet Standards Track document.
29
30 This document is a product of the Internet Engineering Task Force
31 (IETF). It represents the consensus of the IETF community. It has
32 received public review and has been approved for publication by the
33 Internet Engineering Steering Group (IESG). Further information on
34 Internet Standards is available in Section 2 of RFC 5741.
35
36 Information about the current status of this document, any errata,
37 and how to provide feedback on it may be obtained at
38 http://www.rfc-editor.org/info/rfc6350.
39
40Copyright Notice
41
42 Copyright (c) 2011 IETF Trust and the persons identified as the
43 document authors. All rights reserved.
44
45 This document is subject to BCP 78 and the IETF Trust's Legal
46 Provisions Relating to IETF Documents
47 (http://trustee.ietf.org/license-info) in effect on the date of
48 publication of this document. Please review these documents
49 carefully, as they describe your rights and restrictions with respect
50 to this document. Code Components extracted from this document must
51 include Simplified BSD License text as described in Section 4.e of
52 the Trust Legal Provisions and are provided without warranty as
53 described in the Simplified BSD License.
54
55
56
57
58Perreault Standards Track [Page 1]
59
60RFC 6350 vCard August 2011
61
62
63 This document may contain material from IETF Documents or IETF
64 Contributions published or made publicly available before November
65 10, 2008. The person(s) controlling the copyright in some of this
66 material may not have granted the IETF Trust the right to allow
67 modifications of such material outside the IETF Standards Process.
68 Without obtaining an adequate license from the person(s) controlling
69 the copyright in such materials, this document may not be modified
70 outside the IETF Standards Process, and derivative works of it may
71 not be created outside the IETF Standards Process, except to format
72 it for publication as an RFC or to translate it into languages other
73 than English.
74
75Table of Contents
76
77 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 5
78 2. Conventions . . . . . . . . . . . . . . . . . . . . . . . . . 5
79 3. vCard Format Specification . . . . . . . . . . . . . . . . . . 5
80 3.1. Charset . . . . . . . . . . . . . . . . . . . . . . . . . 5
81 3.2. Line Delimiting and Folding . . . . . . . . . . . . . . . 5
82 3.3. ABNF Format Definition . . . . . . . . . . . . . . . . . . 6
83 3.4. Property Value Escaping . . . . . . . . . . . . . . . . . 9
84 4. Property Value Data Types . . . . . . . . . . . . . . . . . . 9
85 4.1. TEXT . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
86 4.2. URI . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
87 4.3. DATE, TIME, DATE-TIME, DATE-AND-OR-TIME, and TIMESTAMP . . 12
88 4.3.1. DATE . . . . . . . . . . . . . . . . . . . . . . . . . 12
89 4.3.2. TIME . . . . . . . . . . . . . . . . . . . . . . . . . 13
90 4.3.3. DATE-TIME . . . . . . . . . . . . . . . . . . . . . . 13
91 4.3.4. DATE-AND-OR-TIME . . . . . . . . . . . . . . . . . . . 14
92 4.3.5. TIMESTAMP . . . . . . . . . . . . . . . . . . . . . . 14
93 4.4. BOOLEAN . . . . . . . . . . . . . . . . . . . . . . . . . 14
94 4.5. INTEGER . . . . . . . . . . . . . . . . . . . . . . . . . 15
95 4.6. FLOAT . . . . . . . . . . . . . . . . . . . . . . . . . . 15
96 4.7. UTC-OFFSET . . . . . . . . . . . . . . . . . . . . . . . . 15
97 4.8. LANGUAGE-TAG . . . . . . . . . . . . . . . . . . . . . . . 16
98 5. Property Parameters . . . . . . . . . . . . . . . . . . . . . 16
99 5.1. LANGUAGE . . . . . . . . . . . . . . . . . . . . . . . . . 16
100 5.2. VALUE . . . . . . . . . . . . . . . . . . . . . . . . . . 16
101 5.3. PREF . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
102 5.4. ALTID . . . . . . . . . . . . . . . . . . . . . . . . . . 18
103 5.5. PID . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
104 5.6. TYPE . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
105 5.7. MEDIATYPE . . . . . . . . . . . . . . . . . . . . . . . . 20
106 5.8. CALSCALE . . . . . . . . . . . . . . . . . . . . . . . . . 20
107 5.9. SORT-AS . . . . . . . . . . . . . . . . . . . . . . . . . 21
108 5.10. GEO . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
109 5.11. TZ . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
110
111
112
113
114Perreault Standards Track [Page 2]
115
116RFC 6350 vCard August 2011
117
118
119 6. vCard Properties . . . . . . . . . . . . . . . . . . . . . . . 23
120 6.1. General Properties . . . . . . . . . . . . . . . . . . . . 23
121 6.1.1. BEGIN . . . . . . . . . . . . . . . . . . . . . . . . 23
122 6.1.2. END . . . . . . . . . . . . . . . . . . . . . . . . . 23
123 6.1.3. SOURCE . . . . . . . . . . . . . . . . . . . . . . . . 24
124 6.1.4. KIND . . . . . . . . . . . . . . . . . . . . . . . . . 25
125 6.1.5. XML . . . . . . . . . . . . . . . . . . . . . . . . . 27
126 6.2. Identification Properties . . . . . . . . . . . . . . . . 28
127 6.2.1. FN . . . . . . . . . . . . . . . . . . . . . . . . . . 28
128 6.2.2. N . . . . . . . . . . . . . . . . . . . . . . . . . . 29
129 6.2.3. NICKNAME . . . . . . . . . . . . . . . . . . . . . . . 29
130 6.2.4. PHOTO . . . . . . . . . . . . . . . . . . . . . . . . 30
131 6.2.5. BDAY . . . . . . . . . . . . . . . . . . . . . . . . . 30
132 6.2.6. ANNIVERSARY . . . . . . . . . . . . . . . . . . . . . 31
133 6.2.7. GENDER . . . . . . . . . . . . . . . . . . . . . . . . 32
134 6.3. Delivery Addressing Properties . . . . . . . . . . . . . . 32
135 6.3.1. ADR . . . . . . . . . . . . . . . . . . . . . . . . . 32
136 6.4. Communications Properties . . . . . . . . . . . . . . . . 34
137 6.4.1. TEL . . . . . . . . . . . . . . . . . . . . . . . . . 34
138 6.4.2. EMAIL . . . . . . . . . . . . . . . . . . . . . . . . 36
139 6.4.3. IMPP . . . . . . . . . . . . . . . . . . . . . . . . . 36
140 6.4.4. LANG . . . . . . . . . . . . . . . . . . . . . . . . . 37
141 6.5. Geographical Properties . . . . . . . . . . . . . . . . . 37
142 6.5.1. TZ . . . . . . . . . . . . . . . . . . . . . . . . . . 37
143 6.5.2. GEO . . . . . . . . . . . . . . . . . . . . . . . . . 38
144 6.6. Organizational Properties . . . . . . . . . . . . . . . . 39
145 6.6.1. TITLE . . . . . . . . . . . . . . . . . . . . . . . . 39
146 6.6.2. ROLE . . . . . . . . . . . . . . . . . . . . . . . . . 39
147 6.6.3. LOGO . . . . . . . . . . . . . . . . . . . . . . . . . 40
148 6.6.4. ORG . . . . . . . . . . . . . . . . . . . . . . . . . 40
149 6.6.5. MEMBER . . . . . . . . . . . . . . . . . . . . . . . . 41
150 6.6.6. RELATED . . . . . . . . . . . . . . . . . . . . . . . 42
151 6.7. Explanatory Properties . . . . . . . . . . . . . . . . . . 43
152 6.7.1. CATEGORIES . . . . . . . . . . . . . . . . . . . . . . 43
153 6.7.2. NOTE . . . . . . . . . . . . . . . . . . . . . . . . . 44
154 6.7.3. PRODID . . . . . . . . . . . . . . . . . . . . . . . . 44
155 6.7.4. REV . . . . . . . . . . . . . . . . . . . . . . . . . 45
156 6.7.5. SOUND . . . . . . . . . . . . . . . . . . . . . . . . 45
157 6.7.6. UID . . . . . . . . . . . . . . . . . . . . . . . . . 46
158 6.7.7. CLIENTPIDMAP . . . . . . . . . . . . . . . . . . . . . 47
159 6.7.8. URL . . . . . . . . . . . . . . . . . . . . . . . . . 47
160 6.7.9. VERSION . . . . . . . . . . . . . . . . . . . . . . . 48
161 6.8. Security Properties . . . . . . . . . . . . . . . . . . . 48
162 6.8.1. KEY . . . . . . . . . . . . . . . . . . . . . . . . . 48
163 6.9. Calendar Properties . . . . . . . . . . . . . . . . . . . 49
164 6.9.1. FBURL . . . . . . . . . . . . . . . . . . . . . . . . 49
165 6.9.2. CALADRURI . . . . . . . . . . . . . . . . . . . . . . 50
166 6.9.3. CALURI . . . . . . . . . . . . . . . . . . . . . . . . 50
167
168
169
170Perreault Standards Track [Page 3]
171
172RFC 6350 vCard August 2011
173
174
175 6.10. Extended Properties and Parameters . . . . . . . . . . . . 51
176 7. Synchronization . . . . . . . . . . . . . . . . . . . . . . . 51
177 7.1. Mechanisms . . . . . . . . . . . . . . . . . . . . . . . . 51
178 7.1.1. Matching vCard Instances . . . . . . . . . . . . . . . 51
179 7.1.2. Matching Property Instances . . . . . . . . . . . . . 52
180 7.1.3. PID Matching . . . . . . . . . . . . . . . . . . . . . 52
181 7.2. Example . . . . . . . . . . . . . . . . . . . . . . . . . 53
182 7.2.1. Creation . . . . . . . . . . . . . . . . . . . . . . . 53
183 7.2.2. Initial Sharing . . . . . . . . . . . . . . . . . . . 53
184 7.2.3. Adding and Sharing a Property . . . . . . . . . . . . 54
185 7.2.4. Simultaneous Editing . . . . . . . . . . . . . . . . . 54
186 7.2.5. Global Context Simplification . . . . . . . . . . . . 56
187 8. Example: Author's vCard . . . . . . . . . . . . . . . . . . . 56
188 9. Security Considerations . . . . . . . . . . . . . . . . . . . 57
189 10. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 58
190 10.1. Media Type Registration . . . . . . . . . . . . . . . . . 58
191 10.2. Registering New vCard Elements . . . . . . . . . . . . . . 59
192 10.2.1. Registration Procedure . . . . . . . . . . . . . . . . 59
193 10.2.2. Vendor Namespace . . . . . . . . . . . . . . . . . . . 60
194 10.2.3. Registration Template for Properties . . . . . . . . . 61
195 10.2.4. Registration Template for Parameters . . . . . . . . . 61
196 10.2.5. Registration Template for Value Data Types . . . . . . 62
197 10.2.6. Registration Template for Values . . . . . . . . . . . 62
198 10.3. Initial vCard Elements Registries . . . . . . . . . . . . 63
199 10.3.1. Properties Registry . . . . . . . . . . . . . . . . . 64
200 10.3.2. Parameters Registry . . . . . . . . . . . . . . . . . 65
201 10.3.3. Value Data Types Registry . . . . . . . . . . . . . . 65
202 10.3.4. Values Registries . . . . . . . . . . . . . . . . . . 66
203 11. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 69
204 12. References . . . . . . . . . . . . . . . . . . . . . . . . . . 69
205 12.1. Normative References . . . . . . . . . . . . . . . . . . . 69
206 12.2. Informative References . . . . . . . . . . . . . . . . . . 71
207 Appendix A. Differences from RFCs 2425 and 2426 . . . . . . . . . 73
208 A.1. New Structure . . . . . . . . . . . . . . . . . . . . . . 73
209 A.2. Removed Features . . . . . . . . . . . . . . . . . . . . . 73
210 A.3. New Properties and Parameters . . . . . . . . . . . . . . 73
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226Perreault Standards Track [Page 4]
227
228RFC 6350 vCard August 2011
229
230
2311. Introduction
232
233 Electronic address books have become ubiquitous. Their increased
234 presence on portable, connected devices as well as the diversity of
235 platforms that exchange contact data call for a standard. This memo
236 defines the vCard format, which allows the capture and exchange of
237 information normally stored within an address book or directory
238 application.
239
240 A high-level overview of the differences from RFCs 2425 and 2426 can
241 be found in Appendix A.
242
2432. Conventions
244
245 The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
246 "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and
247 "OPTIONAL" in this document are to be interpreted as described in
248 [RFC2119].
249
2503. vCard Format Specification
251
252 The text/vcard MIME content type (hereafter known as "vCard"; see
253 Section 10.1) contains contact information, typically pertaining to a
254 single contact or group of contacts. The content consists of one or
255 more lines in the format given below.
256
2573.1. Charset
258
259 The charset (see [RFC3536] for internationalization terminology) for
260 vCard is UTF-8 as defined in [RFC3629]. There is no way to override
261 this. It is invalid to specify a value other than "UTF-8" in the
262 "charset" MIME parameter (see Section 10.1).
263
2643.2. Line Delimiting and Folding
265
266 Individual lines within vCard are delimited by the [RFC5322] line
267 break, which is a CRLF sequence (U+000D followed by U+000A). Long
268 logical lines of text can be split into a multiple-physical-line
269 representation using the following folding technique. Content lines
270 SHOULD be folded to a maximum width of 75 octets, excluding the line
271 break. Multi-octet characters MUST remain contiguous. The rationale
272 for this folding process can be found in [RFC5322], Section 2.1.1.
273
274 A logical line MAY be continued on the next physical line anywhere
275 between two characters by inserting a CRLF immediately followed by a
276 single white space character (space (U+0020) or horizontal tab
277 (U+0009)). The folded line MUST contain at least one character. Any
278 sequence of CRLF followed immediately by a single white space
279
280
281
282Perreault Standards Track [Page 5]
283
284RFC 6350 vCard August 2011
285
286
287 character is ignored (removed) when processing the content type. For
288 example, the line:
289
290 NOTE:This is a long description that exists on a long line.
291
292 can be represented as:
293
294 NOTE:This is a long description
295 that exists on a long line.
296
297 It could also be represented as:
298
299 NOTE:This is a long descrip
300 tion that exists o
301 n a long line.
302
303 The process of moving from this folded multiple-line representation
304 of a property definition to its single-line representation is called
305 unfolding. Unfolding is accomplished by regarding CRLF immediately
306 followed by a white space character (namely, HTAB (U+0009) or SPACE
307 (U+0020)) as equivalent to no characters at all (i.e., the CRLF and
308 single white space character are removed).
309
310 Note: It is possible for very simple implementations to generate
311 improperly folded lines in the middle of a UTF-8 multi-octet
312 sequence. For this reason, implementations SHOULD unfold lines in
313 such a way as to properly restore the original sequence.
314
315 Note: Unfolding is done differently than in [RFC5322]. Unfolding
316 in [RFC5322] only removes the CRLF, not the space following it.
317
318 Folding is done after any content encoding of a type value.
319 Unfolding is done before any decoding of a type value in a content
320 line.
321
3223.3. ABNF Format Definition
323
324 The following ABNF uses the notation of [RFC5234], which also defines
325 CRLF, WSP, DQUOTE, VCHAR, ALPHA, and DIGIT.
326
327 vcard-entity = 1*vcard
328
329 vcard = "BEGIN:VCARD" CRLF
330 "VERSION:4.0" CRLF
331 1*contentline
332 "END:VCARD" CRLF
333 ; A vCard object MUST include the VERSION and FN properties.
334 ; VERSION MUST come immediately after BEGIN:VCARD.
335
336
337
338Perreault Standards Track [Page 6]
339
340RFC 6350 vCard August 2011
341
342
343 contentline = [group "."] name *(";" param) ":" value CRLF
344 ; When parsing a content line, folded lines must first
345 ; be unfolded according to the unfolding procedure
346 ; described in Section 3.2.
347 ; When generating a content line, lines longer than 75
348 ; characters SHOULD be folded according to the folding
349 ; procedure described in Section 3.2.
350
351 group = 1*(ALPHA / DIGIT / "-")
352 name = "SOURCE" / "KIND" / "FN" / "N" / "NICKNAME"
353 / "PHOTO" / "BDAY" / "ANNIVERSARY" / "GENDER" / "ADR" / "TEL"
354 / "EMAIL" / "IMPP" / "LANG" / "TZ" / "GEO" / "TITLE" / "ROLE"
355 / "LOGO" / "ORG" / "MEMBER" / "RELATED" / "CATEGORIES"
356 / "NOTE" / "PRODID" / "REV" / "SOUND" / "UID" / "CLIENTPIDMAP"
357 / "URL" / "KEY" / "FBURL" / "CALADRURI" / "CALURI" / "XML"
358 / iana-token / x-name
359 ; Parsing of the param and value is based on the "name" as
360 ; defined in ABNF sections below.
361 ; Group and name are case-insensitive.
362
363 iana-token = 1*(ALPHA / DIGIT / "-")
364 ; identifier registered with IANA
365
366 x-name = "x-" 1*(ALPHA / DIGIT / "-")
367 ; Names that begin with "x-" or "X-" are
368 ; reserved for experimental use, not intended for released
369 ; products, or for use in bilateral agreements.
370
371 param = language-param / value-param / pref-param / pid-param
372 / type-param / geo-parameter / tz-parameter / sort-as-param
373 / calscale-param / any-param
374 ; Allowed parameters depend on property name.
375
376 param-value = *SAFE-CHAR / DQUOTE *QSAFE-CHAR DQUOTE
377
378 any-param = (iana-token / x-name) "=" param-value *("," param-value)
379
380 NON-ASCII = UTF8-2 / UTF8-3 / UTF8-4
381 ; UTF8-{2,3,4} are defined in [RFC3629]
382
383 QSAFE-CHAR = WSP / "!" / %x23-7E / NON-ASCII
384 ; Any character except CTLs, DQUOTE
385
386 SAFE-CHAR = WSP / "!" / %x23-39 / %x3C-7E / NON-ASCII
387 ; Any character except CTLs, DQUOTE, ";", ":"
388
389 VALUE-CHAR = WSP / VCHAR / NON-ASCII
390 ; Any textual character
391
392
393
394Perreault Standards Track [Page 7]
395
396RFC 6350 vCard August 2011
397
398
399 A line that begins with a white space character is a continuation of
400 the previous line, as described in Section 3.2. The white space
401 character and immediately preceeding CRLF should be discarded when
402 reconstructing the original line. Note that this line-folding
403 convention differs from that found in [RFC5322], in that the sequence
404 <CRLF><WSP> found anywhere in the content indicates a continued line
405 and should be removed.
406
407 Property names and parameter names are case-insensitive (e.g., the
408 property name "fn" is the same as "FN" and "Fn"). Parameter values
409 MAY be case-sensitive or case-insensitive, depending on their
410 definition. Parameter values that are not explicitly defined as
411 being case-sensitive are case-insensitive. Based on experience with
412 vCard 3 interoperability, it is RECOMMENDED that property and
413 parameter names be upper-case on output.
414
415 The group construct is used to group related properties together.
416 The group name is a syntactic convention used to indicate that all
417 property names prefaced with the same group name SHOULD be grouped
418 together when displayed by an application. It has no other
419 significance. Implementations that do not understand or support
420 grouping MAY simply strip off any text before a "." to the left of
421 the type name and present the types and values as normal.
422
423 Property cardinalities are indicated using the following notation,
424 which is based on ABNF (see [RFC5234], Section 3.6):
425
426 +-------------+--------------------------------------------------+
427 | Cardinality | Meaning |
428 +-------------+--------------------------------------------------+
429 | 1 | Exactly one instance per vCard MUST be present. |
430 | *1 | Exactly one instance per vCard MAY be present. |
431 | 1* | One or more instances per vCard MUST be present. |
432 | * | One or more instances per vCard MAY be present. |
433 +-------------+--------------------------------------------------+
434
435 Properties defined in a vCard instance may have multiple values
436 depending on the property cardinality. The general rule for encoding
437 multi-valued properties is to simply create a new content line for
438 each value (including the property name). However, it should be
439 noted that some value types support encoding multiple values in a
440 single content line by separating the values with a comma ",". This
441 approach has been taken for several of the content types defined
442 below (date, time, integer, float).
443
444
445
446
447
448
449
450Perreault Standards Track [Page 8]
451
452RFC 6350 vCard August 2011
453
454
4553.4. Property Value Escaping
456
457 Some properties may contain one or more values delimited by a COMMA
458 character (U+002C). Therefore, a COMMA character in a value MUST be
459 escaped with a BACKSLASH character (U+005C), even for properties that
460 don't allow multiple instances (for consistency).
461
462 Some properties (e.g., N and ADR) comprise multiple fields delimited
463 by a SEMICOLON character (U+003B). Therefore, a SEMICOLON in a field
464 of such a "compound" property MUST be escaped with a BACKSLASH
465 character. SEMICOLON characters in non-compound properties MAY be
466 escaped. On input, an escaped SEMICOLON character is never a field
467 separator. An unescaped SEMICOLON character may be a field
468 separator, depending on the property in which it appears.
469
470 Furthermore, some fields of compound properties may contain a list of
471 values delimited by a COMMA character. Therefore, a COMMA character
472 in one of a field's values MUST be escaped with a BACKSLASH
473 character, even for fields that don't allow multiple values (for
474 consistency). Compound properties allowing multiple instances MUST
475 NOT be encoded in a single content line.
476
477 Finally, BACKSLASH characters in values MUST be escaped with a
478 BACKSLASH character. NEWLINE (U+000A) characters in values MUST be
479 encoded by two characters: a BACKSLASH followed by either an 'n'
480 (U+006E) or an 'N' (U+004E).
481
482 In all other cases, escaping MUST NOT be used.
483
4844. Property Value Data Types
485
486 Standard value types are defined below.
487
488 value = text
489 / text-list
490 / date-list
491 / time-list
492 / date-time-list
493 / date-and-or-time-list
494 / timestamp-list
495 / boolean
496 / integer-list
497 / float-list
498 / URI ; from Section 3 of [RFC3986]
499 / utc-offset
500 / Language-Tag
501 / iana-valuespec
502 ; Actual value type depends on property name and VALUE parameter.
503
504
505
506Perreault Standards Track [Page 9]
507
508RFC 6350 vCard August 2011
509
510
511 text = *TEXT-CHAR
512
513 TEXT-CHAR = "\\" / "\," / "\n" / WSP / NON-ASCII
514 / %x21-2B / %x2D-5B / %x5D-7E
515 ; Backslashes, commas, and newlines must be encoded.
516
517 component = "\\" / "\," / "\;" / "\n" / WSP / NON-ASCII
518 / %x21-2B / %x2D-3A / %x3C-5B / %x5D-7E
519 list-component = component *("," component)
520
521 text-list = text *("," text)
522 date-list = date *("," date)
523 time-list = time *("," time)
524 date-time-list = date-time *("," date-time)
525 date-and-or-time-list = date-and-or-time *("," date-and-or-time)
526 timestamp-list = timestamp *("," timestamp)
527 integer-list = integer *("," integer)
528 float-list = float *("," float)
529
530 boolean = "TRUE" / "FALSE"
531 integer = [sign] 1*DIGIT
532 float = [sign] 1*DIGIT ["." 1*DIGIT]
533
534 sign = "+" / "-"
535
536 year = 4DIGIT ; 0000-9999
537 month = 2DIGIT ; 01-12
538 day = 2DIGIT ; 01-28/29/30/31 depending on month and leap year
539 hour = 2DIGIT ; 00-23
540 minute = 2DIGIT ; 00-59
541 second = 2DIGIT ; 00-58/59/60 depending on leap second
542 zone = utc-designator / utc-offset
543 utc-designator = %x5A ; uppercase "Z"
544
545 date = year [month day]
546 / year "-" month
547 / "--" month [day]
548 / "--" "-" day
549 date-noreduc = year month day
550 / "--" month day
551 / "--" "-" day
552 date-complete = year month day
553
554 time = hour [minute [second]] [zone]
555 / "-" minute [second] [zone]
556 / "-" "-" second [zone]
557 time-notrunc = hour [minute [second]] [zone]
558 time-complete = hour minute second [zone]
559
560
561
562Perreault Standards Track [Page 10]
563
564RFC 6350 vCard August 2011
565
566
567 time-designator = %x54 ; uppercase "T"
568 date-time = date-noreduc time-designator time-notrunc
569 timestamp = date-complete time-designator time-complete
570
571 date-and-or-time = date-time / date / time-designator time
572
573 utc-offset = sign hour [minute]
574
575 Language-Tag = <Language-Tag, defined in [RFC5646], Section 2.1>
576
577 iana-valuespec = <value-spec, see Section 12>
578 ; a publicly defined valuetype format, registered
579 ; with IANA, as defined in Section 12 of this
580 ; document.
581
5824.1. TEXT
583
584 "text": The "text" value type should be used to identify values that
585 contain human-readable text. As for the language, it is controlled
586 by the LANGUAGE property parameter defined in Section 5.1.
587
588 Examples for "text":
589
590 this is a text value
591 this is one value,this is another
592 this is a single value\, with a comma encoded
593
594 A formatted text line break in a text value type MUST be represented
595 as the character sequence backslash (U+005C) followed by a Latin
596 small letter n (U+006E) or a Latin capital letter N (U+004E), that
597 is, "\n" or "\N".
598
599 For example, a multiple line NOTE value of:
600
601 Mythical Manager
602 Hyjinx Software Division
603 BabsCo, Inc.
604
605 could be represented as:
606
607 NOTE:Mythical Manager\nHyjinx Software Division\n
608 BabsCo\, Inc.\n
609
610 demonstrating the \n literal formatted line break technique, the
611 CRLF-followed-by-space line folding technique, and the backslash
612 escape technique.
613
614
615
616
617
618Perreault Standards Track [Page 11]
619
620RFC 6350 vCard August 2011
621
622
6234.2. URI
624
625 "uri": The "uri" value type should be used to identify values that
626 are referenced by a Uniform Resource Identifier (URI) instead of
627 encoded in-line. These value references might be used if the value
628 is too large, or otherwise undesirable to include directly. The
629 format for the URI is as defined in Section 3 of [RFC3986]. Note
630 that the value of a property of type "uri" is what the URI points to,
631 not the URI itself.
632
633 Examples for "uri":
634
635 http://www.example.com/my/picture.jpg
636 ldap://ldap.example.com/cn=babs%20jensen
637
6384.3. DATE, TIME, DATE-TIME, DATE-AND-OR-TIME, and TIMESTAMP
639
640 "date", "time", "date-time", "date-and-or-time", and "timestamp":
641 Each of these value types is based on the definitions in
642 [ISO.8601.2004]. Multiple such values can be specified using the
643 comma-separated notation.
644
645 Only the basic format is supported.
646
6474.3.1. DATE
648
649 A calendar date as specified in [ISO.8601.2004], Section 4.1.2.
650
651 Reduced accuracy, as specified in [ISO.8601.2004], Sections 4.1.2.3
652 a) and b), but not c), is permitted.
653
654 Expanded representation, as specified in [ISO.8601.2004], Section
655 4.1.4, is forbidden.
656
657 Truncated representation, as specified in [ISO.8601.2000], Sections
658 5.2.1.3 d), e), and f), is permitted.
659
660 Examples for "date":
661
662 19850412
663 1985-04
664 1985
665 --0412
666 ---12
667
668
669
670
671
672
673
674Perreault Standards Track [Page 12]
675
676RFC 6350 vCard August 2011
677
678
679 Note the use of YYYY-MM in the second example above. YYYYMM is
680 disallowed to prevent confusion with YYMMDD. Note also that
681 YYYY-MM-DD is disallowed since we are using the basic format instead
682 of the extended format.
683
6844.3.2. TIME
685
686 A time of day as specified in [ISO.8601.2004], Section 4.2.
687
688 Reduced accuracy, as specified in [ISO.8601.2004], Section 4.2.2.3,
689 is permitted.
690
691 Representation with decimal fraction, as specified in
692 [ISO.8601.2004], Section 4.2.2.4, is forbidden.
693
694 The midnight hour is always represented by 00, never 24 (see
695 [ISO.8601.2004], Section 4.2.3).
696
697 Truncated representation, as specified in [ISO.8601.2000], Sections
698 5.3.1.4 a), b), and c), is permitted.
699
700 Examples for "time":
701
702 102200
703 1022
704 10
705 -2200
706 --00
707 102200Z
708 102200-0800
709
7104.3.3. DATE-TIME
711
712 A date and time of day combination as specified in [ISO.8601.2004],
713 Section 4.3.
714
715 Truncation of the date part, as specified in [ISO.8601.2000], Section
716 5.4.2 c), is permitted.
717
718 Examples for "date-time":
719
720 19961022T140000
721 --1022T1400
722 ---22T14
723
724
725
726
727
728
729
730Perreault Standards Track [Page 13]
731
732RFC 6350 vCard August 2011
733
734
7354.3.4. DATE-AND-OR-TIME
736
737 Either a DATE-TIME, a DATE, or a TIME value. To allow unambiguous
738 interpretation, a stand-alone TIME value is always preceded by a "T".
739
740 Examples for "date-and-or-time":
741
742 19961022T140000
743 --1022T1400
744 ---22T14
745 19850412
746 1985-04
747 1985
748 --0412
749 ---12
750 T102200
751 T1022
752 T10
753 T-2200
754 T--00
755 T102200Z
756 T102200-0800
757
7584.3.5. TIMESTAMP
759
760 A complete date and time of day combination as specified in
761 [ISO.8601.2004], Section 4.3.2.
762
763 Examples for "timestamp":
764
765 19961022T140000
766 19961022T140000Z
767 19961022T140000-05
768 19961022T140000-0500
769
7704.4. BOOLEAN
771
772 "boolean": The "boolean" value type is used to express boolean
773 values. These values are case-insensitive.
774
775 Examples:
776
777 TRUE
778 false
779 True
780
781
782
783
784
785
786Perreault Standards Track [Page 14]
787
788RFC 6350 vCard August 2011
789
790
7914.5. INTEGER
792
793 "integer": The "integer" value type is used to express signed
794 integers in decimal format. If sign is not specified, the value is
795 assumed positive "+". Multiple "integer" values can be specified
796 using the comma-separated notation. The maximum value is
797 9223372036854775807, and the minimum value is -9223372036854775808.
798 These limits correspond to a signed 64-bit integer using two's-
799 complement arithmetic.
800
801 Examples:
802
803 1234567890
804 -1234556790
805 +1234556790,432109876
806
8074.6. FLOAT
808
809 "float": The "float" value type is used to express real numbers. If
810 sign is not specified, the value is assumed positive "+". Multiple
811 "float" values can be specified using the comma-separated notation.
812 Implementations MUST support a precision equal or better than that of
813 the IEEE "binary64" format [IEEE.754.2008].
814
815 Note: Scientific notation is disallowed. Implementers wishing to
816 use their favorite language's %f formatting should be careful.
817
818 Examples:
819
820 20.30
821 1000000.0000001
822 1.333,3.14
823
8244.7. UTC-OFFSET
825
826 "utc-offset": The "utc-offset" value type specifies that the property
827 value is a signed offset from UTC. This value type can be specified
828 in the TZ property.
829
830 The value type is an offset from Coordinated Universal Time (UTC).
831 It is specified as a positive or negative difference in units of
832 hours and minutes (e.g., +hhmm). The time is specified as a 24-hour
833 clock. Hour values are from 00 to 23, and minute values are from 00
834 to 59. Hour and minutes are 2 digits with high-order zeroes required
835 to maintain digit count. The basic format for ISO 8601 UTC offsets
836 MUST be used.
837
838
839
840
841
842Perreault Standards Track [Page 15]
843
844RFC 6350 vCard August 2011
845
846
8474.8. LANGUAGE-TAG
848
849 "language-tag": A single language tag, as defined in [RFC5646].
850
8515. Property Parameters
852
853 A property can have attributes associated with it. These "property
854 parameters" contain meta-information about the property or the
855 property value. In some cases, the property parameter can be multi-
856 valued in which case the property parameter value elements are
857 separated by a COMMA (U+002C).
858
859 Property parameter value elements that contain the COLON (U+003A),
860 SEMICOLON (U+003B), or COMMA (U+002C) character separators MUST be
861 specified as quoted-string text values. Property parameter values
862 MUST NOT contain the DQUOTE (U+0022) character. The DQUOTE character
863 is used as a delimiter for parameter values that contain restricted
864 characters or URI text.
865
866 Applications MUST ignore x-param and iana-param values they don't
867 recognize.
868
8695.1. LANGUAGE
870
871 The LANGUAGE property parameter is used to identify data in multiple
872 languages. There is no concept of "default" language, except as
873 specified by any "Content-Language" MIME header parameter that is
874 present [RFC3282]. The value of the LANGUAGE property parameter is a
875 language tag as defined in Section 2 of [RFC5646].
876
877 Examples:
878
879 ROLE;LANGUAGE=tr:hoca
880
881 ABNF:
882
883 language-param = "LANGUAGE=" Language-Tag
884 ; Language-Tag is defined in section 2.1 of RFC 5646
885
8865.2. VALUE
887
888 The VALUE parameter is OPTIONAL, used to identify the value type
889 (data type) and format of the value. The use of these predefined
890 formats is encouraged even if the value parameter is not explicitly
891 used. By defining a standard set of value types and their formats,
892 existing parsing and processing code can be leveraged. The
893
894
895
896
897
898Perreault Standards Track [Page 16]
899
900RFC 6350 vCard August 2011
901
902
903 predefined data type values MUST NOT be repeated in COMMA-separated
904 value lists except within the N, NICKNAME, ADR, and CATEGORIES
905 properties.
906
907 ABNF:
908
909 value-param = "VALUE=" value-type
910
911 value-type = "text"
912 / "uri"
913 / "date"
914 / "time"
915 / "date-time"
916 / "date-and-or-time"
917 / "timestamp"
918 / "boolean"
919 / "integer"
920 / "float"
921 / "utc-offset"
922 / "language-tag"
923 / iana-token ; registered as described in section 12
924 / x-name
925
9265.3. PREF
927
928 The PREF parameter is OPTIONAL and is used to indicate that the
929 corresponding instance of a property is preferred by the vCard
930 author. Its value MUST be an integer between 1 and 100 that
931 quantifies the level of preference. Lower values correspond to a
932 higher level of preference, with 1 being most preferred.
933
934 When the parameter is absent, the default MUST be to interpret the
935 property instance as being least preferred.
936
937 Note that the value of this parameter is to be interpreted only in
938 relation to values assigned to other instances of the same property
939 in the same vCard. A given value, or the absence of a value, MUST
940 NOT be interpreted on its own.
941
942 This parameter MAY be applied to any property that allows multiple
943 instances.
944
945 ABNF:
946
947 pref-param = "PREF=" (1*2DIGIT / "100")
948 ; An integer between 1 and 100.
949
950
951
952
953
954Perreault Standards Track [Page 17]
955
956RFC 6350 vCard August 2011
957
958
9595.4. ALTID
960
961 The ALTID parameter is used to "tag" property instances as being
962 alternative representations of the same logical property. For
963 example, translations of a property in multiple languages generates
964 multiple property instances having different LANGUAGE (Section 5.1)
965 parameter that are tagged with the same ALTID value.
966
967 This parameter's value is treated as an opaque string. Its sole
968 purpose is to be compared for equality against other ALTID parameter
969 values.
970
971 Two property instances are considered alternative representations of
972 the same logical property if and only if their names as well as the
973 value of their ALTID parameters are identical. Property instances
974 without the ALTID parameter MUST NOT be considered an alternative
975 representation of any other property instance. Values for the ALTID
976 parameter are not globally unique: they MAY be reused for different
977 property names.
978
979 Property instances having the same ALTID parameter value count as 1
980 toward cardinality. Therefore, since N (Section 6.2.2) has
981 cardinality *1 and TITLE (Section 6.6.1) has cardinality *, these
982 three examples would be legal:
983
984 N;ALTID=1;LANGUAGE=jp:<U+5C71><U+7530>;<U+592A><U+90CE>;;;
985 N;ALTID=1;LANGUAGE=en:Yamada;Taro;;;
986 (<U+XXXX> denotes a UTF8-encoded Unicode character.)
987
988 TITLE;ALTID=1;LANGUAGE=fr:Patron
989 TITLE;ALTID=1;LANGUAGE=en:Boss
990
991 TITLE;ALTID=1;LANGUAGE=fr:Patron
992 TITLE;ALTID=1;LANGUAGE=en:Boss
993 TITLE;ALTID=2;LANGUAGE=en:Chief vCard Evangelist
994
995 while this one would not:
996
997 N;ALTID=1;LANGUAGE=jp:<U+5C71><U+7530>;<U+592A><U+90CE>;;;
998 N:Yamada;Taro;;;
999 (Two instances of the N property.)
1000
1001 and these three would be legal but questionable:
1002
1003 TITLE;ALTID=1;LANGUAGE=fr:Patron
1004 TITLE;ALTID=2;LANGUAGE=en:Boss
1005 (Should probably have the same ALTID value.)
1006
1007
1008
1009
1010Perreault Standards Track [Page 18]
1011
1012RFC 6350 vCard August 2011
1013
1014
1015 TITLE;ALTID=1;LANGUAGE=fr:Patron
1016 TITLE:LANGUAGE=en:Boss
1017 (Second line should probably have ALTID=1.)
1018
1019 N;ALTID=1;LANGUAGE=jp:<U+5C71><U+7530>;<U+592A><U+90CE>;;;
1020 N;ALTID=1;LANGUAGE=en:Yamada;Taro;;;
1021 N;ALTID=1;LANGUAGE=en:Smith;John;;;
1022 (The last line should probably have ALTID=2. But that would be
1023 illegal because N has cardinality *1.)
1024
1025 The ALTID property MAY also be used in may contexts other than with
1026 the LANGUAGE parameter. Here's an example with two representations
1027 of the same photo in different file formats:
1028
1029 PHOTO;ALTID=1:data:image/jpeg;base64,...
1030 PHOTO;ALTID=1;data:image/jp2;base64,...
1031
1032 ABNF:
1033
1034 altid-param = "ALTID=" param-value
1035
10365.5. PID
1037
1038 The PID parameter is used to identify a specific property among
1039 multiple instances. It plays a role analogous to the UID property
1040 (Section 6.7.6) on a per-property instead of per-vCard basis. It MAY
1041 appear more than once in a given property. It MUST NOT appear on
1042 properties that may have only one instance per vCard. Its value is
1043 either a single small positive integer or a pair of small positive
1044 integers separated by a dot. Multiple values may be encoded in a
1045 single PID parameter by separating the values with a comma ",". See
1046 Section 7 for more details on its usage.
1047
1048 ABNF:
1049
1050 pid-param = "PID=" pid-value *("," pid-value)
1051 pid-value = 1*DIGIT ["." 1*DIGIT]
1052
10535.6. TYPE
1054
1055 The TYPE parameter has multiple, different uses. In general, it is a
1056 way of specifying class characteristics of the associated property.
1057 Most of the time, its value is a comma-separated subset of a
1058 predefined enumeration. In this document, the following properties
1059 make use of this parameter: FN, NICKNAME, PHOTO, ADR, TEL, EMAIL,
1060 IMPP, LANG, TZ, GEO, TITLE, ROLE, LOGO, ORG, RELATED, CATEGORIES,
1061
1062
1063
1064
1065
1066Perreault Standards Track [Page 19]
1067
1068RFC 6350 vCard August 2011
1069
1070
1071 NOTE, SOUND, URL, KEY, FBURL, CALADRURI, and CALURI. The TYPE
1072 parameter MUST NOT be applied on other properties defined in this
1073 document.
1074
1075 The "work" and "home" values act like tags. The "work" value implies
1076 that the property is related to an individual's work place, while the
1077 "home" value implies that the property is related to an individual's
1078 personal life. When neither "work" nor "home" is present, it is
1079 implied that the property is related to both an individual's work
1080 place and personal life in the case that the KIND property's value is
1081 "individual", or to none in other cases.
1082
1083 ABNF:
1084
1085 type-param = "TYPE=" type-value *("," type-value)
1086
1087 type-value = "work" / "home" / type-param-tel
1088 / type-param-related / iana-token / x-name
1089 ; This is further defined in individual property sections.
1090
10915.7. MEDIATYPE
1092
1093 The MEDIATYPE parameter is used with properties whose value is a URI.
1094 Its use is OPTIONAL. It provides a hint to the vCard consumer
1095 application about the media type [RFC2046] of the resource identified
1096 by the URI. Some URI schemes do not need this parameter. For
1097 example, the "data" scheme allows the media type to be explicitly
1098 indicated as part of the URI [RFC2397]. Another scheme, "http",
1099 provides the media type as part of the URI resolution process, with
1100 the Content-Type HTTP header [RFC2616]. The MEDIATYPE parameter is
1101 intended to be used with URI schemes that do not provide such
1102 functionality (e.g., "ftp" [RFC1738]).
1103
1104 ABNF:
1105
1106 mediatype-param = "MEDIATYPE=" mediatype
1107 mediatype = type-name "/" subtype-name *( ";" attribute "=" value )
1108 ; "attribute" and "value" are from [RFC2045]
1109 ; "type-name" and "subtype-name" are from [RFC4288]
1110
11115.8. CALSCALE
1112
1113 The CALSCALE parameter is identical to the CALSCALE property in
1114 iCalendar (see [RFC5545], Section 3.7.1). It is used to define the
1115 calendar system in which a date or date-time value is expressed. The
1116 only value specified by iCalendar is "gregorian", which stands for
1117 the Gregorian system. It is the default when the parameter is
1118 absent. Additional values may be defined in extension documents and
1119
1120
1121
1122Perreault Standards Track [Page 20]
1123
1124RFC 6350 vCard August 2011
1125
1126
1127 registered with IANA (see Section 10.3.4). A vCard implementation
1128 MUST ignore properties with a CALSCALE parameter value that it does
1129 not understand.
1130
1131 ABNF:
1132
1133 calscale-param = "CALSCALE=" calscale-value
1134
1135 calscale-value = "gregorian" / iana-token / x-name
1136
11375.9. SORT-AS
1138
1139 The "sort-as" parameter is used to specify the string to be used for
1140 national-language-specific sorting. Without this information,
1141 sorting algorithms could incorrectly sort this vCard within a
1142 sequence of sorted vCards. When this property is present in a vCard,
1143 then the given strings are used for sorting the vCard.
1144
1145 This parameter's value is a comma-separated list that MUST have as
1146 many or fewer elements as the corresponding property value has
1147 components. This parameter's value is case-sensitive.
1148
1149 ABNF:
1150
1151 sort-as-param = "SORT-AS=" sort-as-value
1152
1153 sort-as-value = param-value *("," param-value)
1154
1155 Examples: For the case of surname and given name sorting, the
1156 following examples define common sort string usage with the N
1157 property.
1158
1159 FN:Rene van der Harten
1160 N;SORT-AS="Harten,Rene":van der Harten;Rene,J.;Sir;R.D.O.N.
1161
1162 FN:Robert Pau Shou Chang
1163 N;SORT-AS="Pau Shou Chang,Robert":Shou Chang;Robert,Pau;;
1164
1165 FN:Osamu Koura
1166 N;SORT-AS="Koura,Osamu":Koura;Osamu;;
1167
1168 FN:Oscar del Pozo
1169 N;SORT-AS="Pozo,Oscar":del Pozo Triscon;Oscar;;
1170
1171 FN:Chistine d'Aboville
1172 N;SORT-AS="Aboville,Christine":d'Aboville;Christine;;
1173
1174
1175
1176
1177
1178Perreault Standards Track [Page 21]
1179
1180RFC 6350 vCard August 2011
1181
1182
1183 FN:H. James de Mann
1184 N;SORT-AS="Mann,James":de Mann;Henry,James;;
1185
1186 If sorted by surname, the results would be:
1187
1188 Christine d'Aboville
1189 Rene van der Harten
1190 Osamu Koura
1191 H. James de Mann
1192 Robert Pau Shou Chang
1193 Oscar del Pozo
1194
1195 If sorted by given name, the results would be:
1196
1197 Christine d'Aboville
1198 H. James de Mann
1199 Osamu Koura
1200 Oscar del Pozo
1201 Rene van der Harten
1202 Robert Pau Shou Chang
1203
12045.10. GEO
1205
1206 The GEO parameter can be used to indicate global positioning
1207 information that is specific to an address. Its value is the same as
1208 that of the GEO property (see Section 6.5.2).
1209
1210 ABNF:
1211
1212 geo-parameter = "GEO=" DQUOTE URI DQUOTE
1213
12145.11. TZ
1215
1216 The TZ parameter can be used to indicate time zone information that
1217 is specific to an address. Its value is the same as that of the TZ
1218 property.
1219
1220 ABNF:
1221
1222 tz-parameter = "TZ=" (param-value / DQUOTE URI DQUOTE)
1223
1224
1225
1226
1227
1228
1229
1230
1231
1232
1233
1234Perreault Standards Track [Page 22]
1235
1236RFC 6350 vCard August 2011
1237
1238
12396. vCard Properties
1240
1241 What follows is an enumeration of the standard vCard properties.
1242
12436.1. General Properties
1244
12456.1.1. BEGIN
1246
1247 Purpose: To denote the beginning of a syntactic entity within a
1248 text/vcard content-type.
1249
1250 Value type: text
1251
1252 Cardinality: 1
1253
1254 Special notes: The content entity MUST begin with the BEGIN property
1255 with a value of "VCARD". The value is case-insensitive.
1256
1257 The BEGIN property is used in conjunction with the END property to
1258 delimit an entity containing a related set of properties within a
1259 text/vcard content-type. This construct can be used instead of
1260 including multiple vCards as body parts inside of a multipart/
1261 alternative MIME message. It is provided for applications that
1262 wish to define content that can contain multiple entities within
1263 the same text/vcard content-type or to define content that can be
1264 identifiable outside of a MIME environment.
1265
1266 ABNF:
1267
1268 BEGIN-param = 0" " ; no parameter allowed
1269 BEGIN-value = "VCARD"
1270
1271 Example:
1272
1273 BEGIN:VCARD
1274
12756.1.2. END
1276
1277 Purpose: To denote the end of a syntactic entity within a text/vcard
1278 content-type.
1279
1280 Value type: text
1281
1282 Cardinality: 1
1283
1284 Special notes: The content entity MUST end with the END type with a
1285 value of "VCARD". The value is case-insensitive.
1286
1287
1288
1289
1290Perreault Standards Track [Page 23]
1291
1292RFC 6350 vCard August 2011
1293
1294
1295 The END property is used in conjunction with the BEGIN property to
1296 delimit an entity containing a related set of properties within a
1297 text/vcard content-type. This construct can be used instead of or
1298 in addition to wrapping separate sets of information inside
1299 additional MIME headers. It is provided for applications that
1300 wish to define content that can contain multiple entities within
1301 the same text/vcard content-type or to define content that can be
1302 identifiable outside of a MIME environment.
1303
1304 ABNF:
1305
1306 END-param = 0" " ; no parameter allowed
1307 END-value = "VCARD"
1308
1309 Example:
1310
1311 END:VCARD
1312
13136.1.3. SOURCE
1314
1315 Purpose: To identify the source of directory information contained
1316 in the content type.
1317
1318 Value type: uri
1319
1320 Cardinality: *
1321
1322 Special notes: The SOURCE property is used to provide the means by
1323 which applications knowledgable in the given directory service
1324 protocol can obtain additional or more up-to-date information from
1325 the directory service. It contains a URI as defined in [RFC3986]
1326 and/or other information referencing the vCard to which the
1327 information pertains. When directory information is available
1328 from more than one source, the sending entity can pick what it
1329 considers to be the best source, or multiple SOURCE properties can
1330 be included.
1331
1332 ABNF:
1333
1334 SOURCE-param = "VALUE=uri" / pid-param / pref-param / altid-param
1335 / mediatype-param / any-param
1336 SOURCE-value = URI
1337
1338 Examples:
1339
1340 SOURCE:ldap://ldap.example.com/cn=Babs%20Jensen,%20o=Babsco,%20c=US
1341
1342
1343
1344
1345
1346Perreault Standards Track [Page 24]
1347
1348RFC 6350 vCard August 2011
1349
1350
1351 SOURCE:http://directory.example.com/addressbooks/jdoe/
1352 Jean%20Dupont.vcf
1353
13546.1.4. KIND
1355
1356 Purpose: To specify the kind of object the vCard represents.
1357
1358 Value type: A single text value.
1359
1360 Cardinality: *1
1361
1362 Special notes: The value may be one of the following:
1363
1364 "individual" for a vCard representing a single person or entity.
1365 This is the default kind of vCard.
1366
1367 "group" for a vCard representing a group of persons or entities.
1368 The group's member entities can be other vCards or other types
1369 of entities, such as email addresses or web sites. A group
1370 vCard will usually contain MEMBER properties to specify the
1371 members of the group, but it is not required to. A group vCard
1372 without MEMBER properties can be considered an abstract
1373 grouping, or one whose members are known empirically (perhaps
1374 "IETF Participants" or "Republican U.S. Senators").
1375
1376 All properties in a group vCard apply to the group as a whole,
1377 and not to any particular MEMBER. For example, an EMAIL
1378 property might specify the address of a mailing list associated
1379 with the group, and an IMPP property might refer to a group
1380 chat room.
1381
1382 "org" for a vCard representing an organization. An organization
1383 vCard will not (in fact, MUST NOT) contain MEMBER properties,
1384 and so these are something of a cross between "individual" and
1385 "group". An organization is a single entity, but not a person.
1386 It might represent a business or government, a department or
1387 division within a business or government, a club, an
1388 association, or the like.
1389
1390 All properties in an organization vCard apply to the
1391 organization as a whole, as is the case with a group vCard.
1392 For example, an EMAIL property might specify the address of a
1393 contact point for the organization.
1394
1395
1396
1397
1398
1399
1400
1401
1402Perreault Standards Track [Page 25]
1403
1404RFC 6350 vCard August 2011
1405
1406
1407 "location" for a named geographical place. A location vCard will
1408 usually contain a GEO property, but it is not required to. A
1409 location vCard without a GEO property can be considered an
1410 abstract location, or one whose definition is known empirically
1411 (perhaps "New England" or "The Seashore").
1412
1413 All properties in a location vCard apply to the location
1414 itself, and not with any entity that might exist at that
1415 location. For example, in a vCard for an office building, an
1416 ADR property might give the mailing address for the building,
1417 and a TEL property might specify the telephone number of the
1418 receptionist.
1419
1420 An x-name. vCards MAY include private or experimental values for
1421 KIND. Remember that x-name values are not intended for general
1422 use and are unlikely to interoperate.
1423
1424 An iana-token. Additional values may be registered with IANA (see
1425 Section 10.3.4). A new value's specification document MUST
1426 specify which properties make sense for that new kind of vCard
1427 and which do not.
1428
1429 Implementations MUST support the specific string values defined
1430 above. If this property is absent, "individual" MUST be assumed
1431 as the default. If this property is present but the
1432 implementation does not understand its value (the value is an
1433 x-name or iana-token that the implementation does not support),
1434 the implementation SHOULD act in a neutral way, which usually
1435 means treating the vCard as though its kind were "individual".
1436 The presence of MEMBER properties MAY, however, be taken as an
1437 indication that the unknown kind is an extension of "group".
1438
1439 Clients often need to visually distinguish contacts based on what
1440 they represent, and the KIND property provides a direct way for
1441 them to do so. For example, when displaying contacts in a list,
1442 an icon could be displayed next to each one, using distinctive
1443 icons for the different kinds; a client might use an outline of a
1444 single person to represent an "individual", an outline of multiple
1445 people to represent a "group", and so on. Alternatively, or in
1446 addition, a client might choose to segregate different kinds of
1447 vCards to different panes, tabs, or selections in the user
1448 interface.
1449
1450 Some clients might also make functional distinctions among the
1451 kinds, ignoring "location" vCards for some purposes and
1452 considering only "location" vCards for others.
1453
1454
1455
1456
1457
1458Perreault Standards Track [Page 26]
1459
1460RFC 6350 vCard August 2011
1461
1462
1463 When designing those sorts of visual and functional distinctions,
1464 client implementations have to decide how to fit unsupported kinds
1465 into the scheme. What icon is used for them? The one for
1466 "individual"? A unique one, such as an icon of a question mark?
1467 Which tab do they go into? It is beyond the scope of this
1468 specification to answer these questions, but these are things
1469 implementers need to consider.
1470
1471 ABNF:
1472
1473 KIND-param = "VALUE=text" / any-param
1474 KIND-value = "individual" / "group" / "org" / "location"
1475 / iana-token / x-name
1476
1477 Example:
1478
1479 This represents someone named Jane Doe working in the marketing
1480 department of the North American division of ABC Inc.
1481
1482 BEGIN:VCARD
1483 VERSION:4.0
1484 KIND:individual
1485 FN:Jane Doe
1486 ORG:ABC\, Inc.;North American Division;Marketing
1487 END:VCARD
1488
1489 This represents the department itself, commonly known as ABC
1490 Marketing.
1491
1492 BEGIN:VCARD
1493 VERSION:4.0
1494 KIND:org
1495 FN:ABC Marketing
1496 ORG:ABC\, Inc.;North American Division;Marketing
1497 END:VCARD
1498
14996.1.5. XML
1500
1501 Purpose: To include extended XML-encoded vCard data in a plain
1502 vCard.
1503
1504 Value type: A single text value.
1505
1506 Cardinality: *
1507
1508 Special notes: The content of this property is a single XML 1.0
1509 [W3C.REC-xml-20081126] element whose namespace MUST be explicitly
1510 specified using the xmlns attribute and MUST NOT be the vCard 4
1511
1512
1513
1514Perreault Standards Track [Page 27]
1515
1516RFC 6350 vCard August 2011
1517
1518
1519 namespace ("urn:ietf:params:xml:ns:vcard-4.0"). (This implies
1520 that it cannot duplicate a standard vCard property.) The element
1521 is to be interpreted as if it was contained in a <vcard> element,
1522 as defined in [RFC6351].
1523
1524 The fragment is subject to normal line folding and escaping, i.e.,
1525 replace all backslashes with "\\", then replace all newlines with
1526 "\n", then fold long lines.
1527
1528 Support for this property is OPTIONAL, but implementations of this
1529 specification MUST preserve instances of this property when
1530 propagating vCards.
1531
1532 See [RFC6351] for more information on the intended use of this
1533 property.
1534
1535 ABNF:
1536
1537 XML-param = "VALUE=text" / altid-param
1538 XML-value = text
1539
15406.2. Identification Properties
1541
1542 These types are used to capture information associated with the
1543 identification and naming of the entity associated with the vCard.
1544
15456.2.1. FN
1546
1547 Purpose: To specify the formatted text corresponding to the name of
1548 the object the vCard represents.
1549
1550 Value type: A single text value.
1551
1552 Cardinality: 1*
1553
1554 Special notes: This property is based on the semantics of the X.520
1555 Common Name attribute [CCITT.X520.1988]. The property MUST be
1556 present in the vCard object.
1557
1558 ABNF:
1559
1560 FN-param = "VALUE=text" / type-param / language-param / altid-param
1561 / pid-param / pref-param / any-param
1562 FN-value = text
1563
1564 Example:
1565
1566 FN:Mr. John Q. Public\, Esq.
1567
1568
1569
1570Perreault Standards Track [Page 28]
1571
1572RFC 6350 vCard August 2011
1573
1574
15756.2.2. N
1576
1577 Purpose: To specify the components of the name of the object the
1578 vCard represents.
1579
1580 Value type: A single structured text value. Each component can have
1581 multiple values.
1582
1583 Cardinality: *1
1584
1585 Special note: The structured property value corresponds, in
1586 sequence, to the Family Names (also known as surnames), Given
1587 Names, Additional Names, Honorific Prefixes, and Honorific
1588 Suffixes. The text components are separated by the SEMICOLON
1589 character (U+003B). Individual text components can include
1590 multiple text values separated by the COMMA character (U+002C).
1591 This property is based on the semantics of the X.520 individual
1592 name attributes [CCITT.X520.1988]. The property SHOULD be present
1593 in the vCard object when the name of the object the vCard
1594 represents follows the X.520 model.
1595
1596 The SORT-AS parameter MAY be applied to this property.
1597
1598 ABNF:
1599
1600 N-param = "VALUE=text" / sort-as-param / language-param
1601 / altid-param / any-param
1602 N-value = list-component 4(";" list-component)
1603
1604 Examples:
1605
1606 N:Public;John;Quinlan;Mr.;Esq.
1607
1608 N:Stevenson;John;Philip,Paul;Dr.;Jr.,M.D.,A.C.P.
1609
16106.2.3. NICKNAME
1611
1612 Purpose: To specify the text corresponding to the nickname of the
1613 object the vCard represents.
1614
1615 Value type: One or more text values separated by a COMMA character
1616 (U+002C).
1617
1618 Cardinality: *
1619
1620
1621
1622
1623
1624
1625
1626Perreault Standards Track [Page 29]
1627
1628RFC 6350 vCard August 2011
1629
1630
1631 Special note: The nickname is the descriptive name given instead of
1632 or in addition to the one belonging to the object the vCard
1633 represents. It can also be used to specify a familiar form of a
1634 proper name specified by the FN or N properties.
1635
1636 ABNF:
1637
1638 NICKNAME-param = "VALUE=text" / type-param / language-param
1639 / altid-param / pid-param / pref-param / any-param
1640 NICKNAME-value = text-list
1641
1642 Examples:
1643
1644 NICKNAME:Robbie
1645
1646 NICKNAME:Jim,Jimmie
1647
1648 NICKNAME;TYPE=work:Boss
1649
16506.2.4. PHOTO
1651
1652 Purpose: To specify an image or photograph information that
1653 annotates some aspect of the object the vCard represents.
1654
1655 Value type: A single URI.
1656
1657 Cardinality: *
1658
1659 ABNF:
1660
1661 PHOTO-param = "VALUE=uri" / altid-param / type-param
1662 / mediatype-param / pref-param / pid-param / any-param
1663 PHOTO-value = URI
1664
1665 Examples:
1666
1667 PHOTO:http://www.example.com/pub/photos/jqpublic.gif
1668
1669 PHOTO:data:image/jpeg;base64,MIICajCCAdOgAwIBAgICBEUwDQYJKoZIhv
1670 AQEEBQAwdzELMAkGA1UEBhMCVVMxLDAqBgNVBAoTI05ldHNjYXBlIENvbW11bm
1671 ljYXRpb25zIENvcnBvcmF0aW9uMRwwGgYDVQQLExNJbmZvcm1hdGlvbiBTeXN0
1672 <...remainder of base64-encoded data...>
1673
16746.2.5. BDAY
1675
1676 Purpose: To specify the birth date of the object the vCard
1677 represents.
1678
1679
1680
1681
1682Perreault Standards Track [Page 30]
1683
1684RFC 6350 vCard August 2011
1685
1686
1687 Value type: The default is a single date-and-or-time value. It can
1688 also be reset to a single text value.
1689
1690 Cardinality: *1
1691
1692 ABNF:
1693
1694 BDAY-param = BDAY-param-date / BDAY-param-text
1695 BDAY-value = date-and-or-time / text
1696 ; Value and parameter MUST match.
1697
1698 BDAY-param-date = "VALUE=date-and-or-time"
1699 BDAY-param-text = "VALUE=text" / language-param
1700
1701 BDAY-param =/ altid-param / calscale-param / any-param
1702 ; calscale-param can only be present when BDAY-value is
1703 ; date-and-or-time and actually contains a date or date-time.
1704
1705 Examples:
1706
1707 BDAY:19960415
1708 BDAY:--0415
1709 BDAY;19531015T231000Z
1710 BDAY;VALUE=text:circa 1800
1711
17126.2.6. ANNIVERSARY
1713
1714 Purpose: The date of marriage, or equivalent, of the object the
1715 vCard represents.
1716
1717 Value type: The default is a single date-and-or-time value. It can
1718 also be reset to a single text value.
1719
1720 Cardinality: *1
1721
1722 ABNF:
1723
1724 ANNIVERSARY-param = "VALUE=" ("date-and-or-time" / "text")
1725 ANNIVERSARY-value = date-and-or-time / text
1726 ; Value and parameter MUST match.
1727
1728 ANNIVERSARY-param =/ altid-param / calscale-param / any-param
1729 ; calscale-param can only be present when ANNIVERSARY-value is
1730 ; date-and-or-time and actually contains a date or date-time.
1731
1732 Examples:
1733
1734 ANNIVERSARY:19960415
1735
1736
1737
1738Perreault Standards Track [Page 31]
1739
1740RFC 6350 vCard August 2011
1741
1742
17436.2.7. GENDER
1744
1745 Purpose: To specify the components of the sex and gender identity of
1746 the object the vCard represents.
1747
1748 Value type: A single structured value with two components. Each
1749 component has a single text value.
1750
1751 Cardinality: *1
1752
1753 Special notes: The components correspond, in sequence, to the sex
1754 (biological), and gender identity. Each component is optional.
1755
1756 Sex component: A single letter. M stands for "male", F stands
1757 for "female", O stands for "other", N stands for "none or not
1758 applicable", U stands for "unknown".
1759
1760 Gender identity component: Free-form text.
1761
1762 ABNF:
1763
1764 GENDER-param = "VALUE=text" / any-param
1765 GENDER-value = sex [";" text]
1766
1767 sex = "" / "M" / "F" / "O" / "N" / "U"
1768
1769 Examples:
1770
1771 GENDER:M
1772 GENDER:F
1773 GENDER:M;Fellow
1774 GENDER:F;grrrl
1775 GENDER:O;intersex
1776 GENDER:;it's complicated
1777
17786.3. Delivery Addressing Properties
1779
1780 These types are concerned with information related to the delivery
1781 addressing or label for the vCard object.
1782
17836.3.1. ADR
1784
1785 Purpose: To specify the components of the delivery address for the
1786 vCard object.
1787
1788 Value type: A single structured text value, separated by the
1789 SEMICOLON character (U+003B).
1790
1791
1792
1793
1794Perreault Standards Track [Page 32]
1795
1796RFC 6350 vCard August 2011
1797
1798
1799 Cardinality: *
1800
1801 Special notes: The structured type value consists of a sequence of
1802 address components. The component values MUST be specified in
1803 their corresponding position. The structured type value
1804 corresponds, in sequence, to
1805 the post office box;
1806 the extended address (e.g., apartment or suite number);
1807 the street address;
1808 the locality (e.g., city);
1809 the region (e.g., state or province);
1810 the postal code;
1811 the country name (full name in the language specified in
1812 Section 5.1).
1813
1814 When a component value is missing, the associated component
1815 separator MUST still be specified.
1816
1817 Experience with vCard 3 has shown that the first two components
1818 (post office box and extended address) are plagued with many
1819 interoperability issues. To ensure maximal interoperability,
1820 their values SHOULD be empty.
1821
1822 The text components are separated by the SEMICOLON character
1823 (U+003B). Where it makes semantic sense, individual text
1824 components can include multiple text values (e.g., a "street"
1825 component with multiple lines) separated by the COMMA character
1826 (U+002C).
1827
1828 The property can include the "PREF" parameter to indicate the
1829 preferred delivery address when more than one address is
1830 specified.
1831
1832 The GEO and TZ parameters MAY be used with this property.
1833
1834 The property can also include a "LABEL" parameter to present a
1835 delivery address label for the address. Its value is a plain-text
1836 string representing the formatted address. Newlines are encoded
1837 as \n, as they are for property values.
1838
1839 ABNF:
1840
1841 label-param = "LABEL=" param-value
1842
1843 ADR-param = "VALUE=text" / label-param / language-param
1844 / geo-parameter / tz-parameter / altid-param / pid-param
1845 / pref-param / type-param / any-param
1846
1847
1848
1849
1850Perreault Standards Track [Page 33]
1851
1852RFC 6350 vCard August 2011
1853
1854
1855 ADR-value = ADR-component-pobox ";" ADR-component-ext ";"
1856 ADR-component-street ";" ADR-component-locality ";"
1857 ADR-component-region ";" ADR-component-code ";"
1858 ADR-component-country
1859 ADR-component-pobox = list-component
1860 ADR-component-ext = list-component
1861 ADR-component-street = list-component
1862 ADR-component-locality = list-component
1863 ADR-component-region = list-component
1864 ADR-component-code = list-component
1865 ADR-component-country = list-component
1866
1867 Example: In this example, the post office box and the extended
1868 address are absent.
1869
1870 ADR;GEO="geo:12.3457,78.910";LABEL="Mr. John Q. Public, Esq.\n
1871 Mail Drop: TNE QB\n123 Main Street\nAny Town, CA 91921-1234\n
1872 U.S.A.":;;123 Main Street;Any Town;CA;91921-1234;U.S.A.
1873
18746.4. Communications Properties
1875
1876 These properties describe information about how to communicate with
1877 the object the vCard represents.
1878
18796.4.1. TEL
1880
1881 Purpose: To specify the telephone number for telephony communication
1882 with the object the vCard represents.
1883
1884 Value type: By default, it is a single free-form text value (for
1885 backward compatibility with vCard 3), but it SHOULD be reset to a
1886 URI value. It is expected that the URI scheme will be "tel", as
1887 specified in [RFC3966], but other schemes MAY be used.
1888
1889 Cardinality: *
1890
1891 Special notes: This property is based on the X.520 Telephone Number
1892 attribute [CCITT.X520.1988].
1893
1894 The property can include the "PREF" parameter to indicate a
1895 preferred-use telephone number.
1896
1897 The property can include the parameter "TYPE" to specify intended
1898 use for the telephone number. The predefined values for the TYPE
1899 parameter are:
1900
1901
1902
1903
1904
1905
1906Perreault Standards Track [Page 34]
1907
1908RFC 6350 vCard August 2011
1909
1910
1911 +-----------+-------------------------------------------------------+
1912 | Value | Description |
1913 +-----------+-------------------------------------------------------+
1914 | text | Indicates that the telephone number supports text |
1915 | | messages (SMS). |
1916 | voice | Indicates a voice telephone number. |
1917 | fax | Indicates a facsimile telephone number. |
1918 | cell | Indicates a cellular or mobile telephone number. |
1919 | video | Indicates a video conferencing telephone number. |
1920 | pager | Indicates a paging device telephone number. |
1921 | textphone | Indicates a telecommunication device for people with |
1922 | | hearing or speech difficulties. |
1923 +-----------+-------------------------------------------------------+
1924
1925 The default type is "voice". These type parameter values can be
1926 specified as a parameter list (e.g., TYPE=text;TYPE=voice) or as a
1927 value list (e.g., TYPE="text,voice"). The default can be
1928 overridden to another set of values by specifying one or more
1929 alternate values. For example, the default TYPE of "voice" can be
1930 reset to a VOICE and FAX telephone number by the value list
1931 TYPE="voice,fax".
1932
1933 If this property's value is a URI that can also be used for
1934 instant messaging, the IMPP (Section 6.4.3) property SHOULD be
1935 used in addition to this property.
1936
1937 ABNF:
1938
1939 TEL-param = TEL-text-param / TEL-uri-param
1940 TEL-value = TEL-text-value / TEL-uri-value
1941 ; Value and parameter MUST match.
1942
1943 TEL-text-param = "VALUE=text"
1944 TEL-text-value = text
1945
1946 TEL-uri-param = "VALUE=uri" / mediatype-param
1947 TEL-uri-value = URI
1948
1949 TEL-param =/ type-param / pid-param / pref-param / altid-param
1950 / any-param
1951
1952 type-param-tel = "text" / "voice" / "fax" / "cell" / "video"
1953 / "pager" / "textphone" / iana-token / x-name
1954 ; type-param-tel MUST NOT be used with a property other than TEL.
1955
1956
1957
1958
1959
1960
1961
1962Perreault Standards Track [Page 35]
1963
1964RFC 6350 vCard August 2011
1965
1966
1967 Example:
1968
1969 TEL;VALUE=uri;PREF=1;TYPE="voice,home":tel:+1-555-555-5555;ext=5555
1970 TEL;VALUE=uri;TYPE=home:tel:+33-01-23-45-67
1971
19726.4.2. EMAIL
1973
1974 Purpose: To specify the electronic mail address for communication
1975 with the object the vCard represents.
1976
1977 Value type: A single text value.
1978
1979 Cardinality: *
1980
1981 Special notes: The property can include tye "PREF" parameter to
1982 indicate a preferred-use email address when more than one is
1983 specified.
1984
1985 Even though the value is free-form UTF-8 text, it is likely to be
1986 interpreted by a Mail User Agent (MUA) as an "addr-spec", as
1987 defined in [RFC5322], Section 3.4.1. Readers should also be aware
1988 of the current work toward internationalized email addresses
1989 [RFC5335bis].
1990
1991 ABNF:
1992
1993 EMAIL-param = "VALUE=text" / pid-param / pref-param / type-param
1994 / altid-param / any-param
1995 EMAIL-value = text
1996
1997 Example:
1998
1999 EMAIL;TYPE=work:jqpublic@xyz.example.com
2000
2001 EMAIL;PREF=1:jane_doe@example.com
2002
20036.4.3. IMPP
2004
2005 Purpose: To specify the URI for instant messaging and presence
2006 protocol communications with the object the vCard represents.
2007
2008 Value type: A single URI.
2009
2010 Cardinality: *
2011
2012 Special notes: The property may include the "PREF" parameter to
2013 indicate that this is a preferred address and has the same
2014 semantics as the "PREF" parameter in a TEL property.
2015
2016
2017
2018Perreault Standards Track [Page 36]
2019
2020RFC 6350 vCard August 2011
2021
2022
2023 If this property's value is a URI that can be used for voice
2024 and/or video, the TEL property (Section 6.4.1) SHOULD be used in
2025 addition to this property.
2026
2027 This property is adapted from [RFC4770], which is made obsolete by
2028 this document.
2029
2030 ABNF:
2031
2032 IMPP-param = "VALUE=uri" / pid-param / pref-param / type-param
2033 / mediatype-param / altid-param / any-param
2034 IMPP-value = URI
2035
2036 Example:
2037
2038 IMPP;PREF=1:xmpp:alice@example.com
2039
20406.4.4. LANG
2041
2042 Purpose: To specify the language(s) that may be used for contacting
2043 the entity associated with the vCard.
2044
2045 Value type: A single language-tag value.
2046
2047 Cardinality: *
2048
2049 ABNF:
2050
2051 LANG-param = "VALUE=language-tag" / pid-param / pref-param
2052 / altid-param / type-param / any-param
2053 LANG-value = Language-Tag
2054
2055 Example:
2056
2057 LANG;TYPE=work;PREF=1:en
2058 LANG;TYPE=work;PREF=2:fr
2059 LANG;TYPE=home:fr
2060
20616.5. Geographical Properties
2062
2063 These properties are concerned with information associated with
2064 geographical positions or regions associated with the object the
2065 vCard represents.
2066
20676.5.1. TZ
2068
2069 Purpose: To specify information related to the time zone of the
2070 object the vCard represents.
2071
2072
2073
2074Perreault Standards Track [Page 37]
2075
2076RFC 6350 vCard August 2011
2077
2078
2079 Value type: The default is a single text value. It can also be
2080 reset to a single URI or utc-offset value.
2081
2082 Cardinality: *
2083
2084 Special notes: It is expected that names from the public-domain
2085 Olson database [TZ-DB] will be used, but this is not a
2086 restriction. See also [IANA-TZ].
2087
2088 Efforts are currently being directed at creating a standard URI
2089 scheme for expressing time zone information. Usage of such a
2090 scheme would ensure a high level of interoperability between
2091 implementations that support it.
2092
2093 Note that utc-offset values SHOULD NOT be used because the UTC
2094 offset varies with time -- not just because of the usual daylight
2095 saving time shifts that occur in may regions, but often entire
2096 regions will "re-base" their overall offset. The actual offset
2097 may be +/- 1 hour (or perhaps a little more) than the one given.
2098
2099 ABNF:
2100
2101 TZ-param = "VALUE=" ("text" / "uri" / "utc-offset")
2102 TZ-value = text / URI / utc-offset
2103 ; Value and parameter MUST match.
2104
2105 TZ-param =/ altid-param / pid-param / pref-param / type-param
2106 / mediatype-param / any-param
2107
2108 Examples:
2109
2110 TZ:Raleigh/North America
2111
2112 TZ;VALUE=utc-offset:-0500
2113 ; Note: utc-offset format is NOT RECOMMENDED.
2114
21156.5.2. GEO
2116
2117 Purpose: To specify information related to the global positioning of
2118 the object the vCard represents.
2119
2120 Value type: A single URI.
2121
2122 Cardinality: *
2123
2124 Special notes: The "geo" URI scheme [RFC5870] is particularly well
2125 suited for this property, but other schemes MAY be used.
2126
2127
2128
2129
2130Perreault Standards Track [Page 38]
2131
2132RFC 6350 vCard August 2011
2133
2134
2135 ABNF:
2136
2137 GEO-param = "VALUE=uri" / pid-param / pref-param / type-param
2138 / mediatype-param / altid-param / any-param
2139 GEO-value = URI
2140
2141 Example:
2142
2143 GEO:geo:37.386013,-122.082932
2144
21456.6. Organizational Properties
2146
2147 These properties are concerned with information associated with
2148 characteristics of the organization or organizational units of the
2149 object that the vCard represents.
2150
21516.6.1. TITLE
2152
2153 Purpose: To specify the position or job of the object the vCard
2154 represents.
2155
2156 Value type: A single text value.
2157
2158 Cardinality: *
2159
2160 Special notes: This property is based on the X.520 Title attribute
2161 [CCITT.X520.1988].
2162
2163 ABNF:
2164
2165 TITLE-param = "VALUE=text" / language-param / pid-param
2166 / pref-param / altid-param / type-param / any-param
2167 TITLE-value = text
2168
2169 Example:
2170
2171 TITLE:Research Scientist
2172
21736.6.2. ROLE
2174
2175 Purpose: To specify the function or part played in a particular
2176 situation by the object the vCard represents.
2177
2178 Value type: A single text value.
2179
2180 Cardinality: *
2181
2182
2183
2184
2185
2186Perreault Standards Track [Page 39]
2187
2188RFC 6350 vCard August 2011
2189
2190
2191 Special notes: This property is based on the X.520 Business Category
2192 explanatory attribute [CCITT.X520.1988]. This property is
2193 included as an organizational type to avoid confusion with the
2194 semantics of the TITLE property and incorrect usage of that
2195 property when the semantics of this property is intended.
2196
2197 ABNF:
2198
2199 ROLE-param = "VALUE=text" / language-param / pid-param / pref-param
2200 / type-param / altid-param / any-param
2201 ROLE-value = text
2202
2203 Example:
2204
2205 ROLE:Project Leader
2206
22076.6.3. LOGO
2208
2209 Purpose: To specify a graphic image of a logo associated with the
2210 object the vCard represents.
2211
2212 Value type: A single URI.
2213
2214 Cardinality: *
2215
2216 ABNF:
2217
2218 LOGO-param = "VALUE=uri" / language-param / pid-param / pref-param
2219 / type-param / mediatype-param / altid-param / any-param
2220 LOGO-value = URI
2221
2222 Examples:
2223
2224 LOGO:http://www.example.com/pub/logos/abccorp.jpg
2225
2226 LOGO:data:image/jpeg;base64,MIICajCCAdOgAwIBAgICBEUwDQYJKoZIhvc
2227 AQEEBQAwdzELMAkGA1UEBhMCVVMxLDAqBgNVBAoTI05ldHNjYXBlIENvbW11bm
2228 ljYXRpb25zIENvcnBvcmF0aW9uMRwwGgYDVQQLExNJbmZvcm1hdGlvbiBTeXN0
2229 <...the remainder of base64-encoded data...>
2230
22316.6.4. ORG
2232
2233 Purpose: To specify the organizational name and units associated
2234 with the vCard.
2235
2236 Value type: A single structured text value consisting of components
2237 separated by the SEMICOLON character (U+003B).
2238
2239
2240
2241
2242Perreault Standards Track [Page 40]
2243
2244RFC 6350 vCard August 2011
2245
2246
2247 Cardinality: *
2248
2249 Special notes: The property is based on the X.520 Organization Name
2250 and Organization Unit attributes [CCITT.X520.1988]. The property
2251 value is a structured type consisting of the organization name,
2252 followed by zero or more levels of organizational unit names.
2253
2254 The SORT-AS parameter MAY be applied to this property.
2255
2256 ABNF:
2257
2258 ORG-param = "VALUE=text" / sort-as-param / language-param
2259 / pid-param / pref-param / altid-param / type-param
2260 / any-param
2261 ORG-value = component *(";" component)
2262
2263 Example: A property value consisting of an organizational name,
2264 organizational unit #1 name, and organizational unit #2 name.
2265
2266 ORG:ABC\, Inc.;North American Division;Marketing
2267
22686.6.5. MEMBER
2269
2270 Purpose: To include a member in the group this vCard represents.
2271
2272 Value type: A single URI. It MAY refer to something other than a
2273 vCard object. For example, an email distribution list could
2274 employ the "mailto" URI scheme [RFC6068] for efficiency.
2275
2276 Cardinality: *
2277
2278 Special notes: This property MUST NOT be present unless the value of
2279 the KIND property is "group".
2280
2281 ABNF:
2282
2283 MEMBER-param = "VALUE=uri" / pid-param / pref-param / altid-param
2284 / mediatype-param / any-param
2285 MEMBER-value = URI
2286
2287
2288
2289
2290
2291
2292
2293
2294
2295
2296
2297
2298Perreault Standards Track [Page 41]
2299
2300RFC 6350 vCard August 2011
2301
2302
2303 Examples:
2304
2305 BEGIN:VCARD
2306 VERSION:4.0
2307 KIND:group
2308 FN:The Doe family
2309 MEMBER:urn:uuid:03a0e51f-d1aa-4385-8a53-e29025acd8af
2310 MEMBER:urn:uuid:b8767877-b4a1-4c70-9acc-505d3819e519
2311 END:VCARD
2312 BEGIN:VCARD
2313 VERSION:4.0
2314 FN:John Doe
2315 UID:urn:uuid:03a0e51f-d1aa-4385-8a53-e29025acd8af
2316 END:VCARD
2317 BEGIN:VCARD
2318 VERSION:4.0
2319 FN:Jane Doe
2320 UID:urn:uuid:b8767877-b4a1-4c70-9acc-505d3819e519
2321 END:VCARD
2322
2323 BEGIN:VCARD
2324 VERSION:4.0
2325 KIND:group
2326 FN:Funky distribution list
2327 MEMBER:mailto:subscriber1@example.com
2328 MEMBER:xmpp:subscriber2@example.com
2329 MEMBER:sip:subscriber3@example.com
2330 MEMBER:tel:+1-418-555-5555
2331 END:VCARD
2332
23336.6.6. RELATED
2334
2335 Purpose: To specify a relationship between another entity and the
2336 entity represented by this vCard.
2337
2338 Value type: A single URI. It can also be reset to a single text
2339 value. The text value can be used to specify textual information.
2340
2341 Cardinality: *
2342
2343 Special notes: The TYPE parameter MAY be used to characterize the
2344 related entity. It contains a comma-separated list of values that
2345 are registered with IANA as described in Section 10.2. The
2346 registry is pre-populated with the values defined in [xfn]. This
2347 document also specifies two additional values:
2348
2349 agent: an entity who may sometimes act on behalf of the entity
2350 associated with the vCard.
2351
2352
2353
2354Perreault Standards Track [Page 42]
2355
2356RFC 6350 vCard August 2011
2357
2358
2359 emergency: indicates an emergency contact
2360
2361 ABNF:
2362
2363 RELATED-param = RELATED-param-uri / RELATED-param-text
2364 RELATED-value = URI / text
2365 ; Parameter and value MUST match.
2366
2367 RELATED-param-uri = "VALUE=uri" / mediatype-param
2368 RELATED-param-text = "VALUE=text" / language-param
2369
2370 RELATED-param =/ pid-param / pref-param / altid-param / type-param
2371 / any-param
2372
2373 type-param-related = related-type-value *("," related-type-value)
2374 ; type-param-related MUST NOT be used with a property other than
2375 ; RELATED.
2376
2377 related-type-value = "contact" / "acquaintance" / "friend" / "met"
2378 / "co-worker" / "colleague" / "co-resident"
2379 / "neighbor" / "child" / "parent"
2380 / "sibling" / "spouse" / "kin" / "muse"
2381 / "crush" / "date" / "sweetheart" / "me"
2382 / "agent" / "emergency"
2383
2384 Examples:
2385
2386 RELATED;TYPE=friend:urn:uuid:f81d4fae-7dec-11d0-a765-00a0c91e6bf6
2387 RELATED;TYPE=contact:http://example.com/directory/jdoe.vcf
2388 RELATED;TYPE=co-worker;VALUE=text:Please contact my assistant Jane
2389 Doe for any inquiries.
2390
23916.7. Explanatory Properties
2392
2393 These properties are concerned with additional explanations, such as
2394 that related to informational notes or revisions specific to the
2395 vCard.
2396
23976.7.1. CATEGORIES
2398
2399 Purpose: To specify application category information about the
2400 vCard, also known as "tags".
2401
2402 Value type: One or more text values separated by a COMMA character
2403 (U+002C).
2404
2405 Cardinality: *
2406
2407
2408
2409
2410Perreault Standards Track [Page 43]
2411
2412RFC 6350 vCard August 2011
2413
2414
2415 ABNF:
2416
2417 CATEGORIES-param = "VALUE=text" / pid-param / pref-param
2418 / type-param / altid-param / any-param
2419 CATEGORIES-value = text-list
2420
2421 Example:
2422
2423 CATEGORIES:TRAVEL AGENT
2424
2425 CATEGORIES:INTERNET,IETF,INDUSTRY,INFORMATION TECHNOLOGY
2426
24276.7.2. NOTE
2428
2429 Purpose: To specify supplemental information or a comment that is
2430 associated with the vCard.
2431
2432 Value type: A single text value.
2433
2434 Cardinality: *
2435
2436 Special notes: The property is based on the X.520 Description
2437 attribute [CCITT.X520.1988].
2438
2439 ABNF:
2440
2441 NOTE-param = "VALUE=text" / language-param / pid-param / pref-param
2442 / type-param / altid-param / any-param
2443 NOTE-value = text
2444
2445 Example:
2446
2447 NOTE:This fax number is operational 0800 to 1715
2448 EST\, Mon-Fri.
2449
24506.7.3. PRODID
2451
2452 Purpose: To specify the identifier for the product that created the
2453 vCard object.
2454
2455 Type value: A single text value.
2456
2457 Cardinality: *1
2458
2459 Special notes: Implementations SHOULD use a method such as that
2460 specified for Formal Public Identifiers in [ISO9070] or for
2461 Universal Resource Names in [RFC3406] to ensure that the text
2462 value is unique.
2463
2464
2465
2466Perreault Standards Track [Page 44]
2467
2468RFC 6350 vCard August 2011
2469
2470
2471 ABNF:
2472
2473 PRODID-param = "VALUE=text" / any-param
2474 PRODID-value = text
2475
2476 Example:
2477
2478 PRODID:-//ONLINE DIRECTORY//NONSGML Version 1//EN
2479
24806.7.4. REV
2481
2482 Purpose: To specify revision information about the current vCard.
2483
2484 Value type: A single timestamp value.
2485
2486 Cardinality: *1
2487
2488 Special notes: The value distinguishes the current revision of the
2489 information in this vCard for other renditions of the information.
2490
2491 ABNF:
2492
2493 REV-param = "VALUE=timestamp" / any-param
2494 REV-value = timestamp
2495
2496 Example:
2497
2498 REV:19951031T222710Z
2499
25006.7.5. SOUND
2501
2502 Purpose: To specify a digital sound content information that
2503 annotates some aspect of the vCard. This property is often used
2504 to specify the proper pronunciation of the name property value of
2505 the vCard.
2506
2507 Value type: A single URI.
2508
2509 Cardinality: *
2510
2511 ABNF:
2512
2513 SOUND-param = "VALUE=uri" / language-param / pid-param / pref-param
2514 / type-param / mediatype-param / altid-param
2515 / any-param
2516 SOUND-value = URI
2517
2518
2519
2520
2521
2522Perreault Standards Track [Page 45]
2523
2524RFC 6350 vCard August 2011
2525
2526
2527 Example:
2528
2529 SOUND:CID:JOHNQPUBLIC.part8.19960229T080000.xyzMail@example.com
2530
2531 SOUND:data:audio/basic;base64,MIICajCCAdOgAwIBAgICBEUwDQYJKoZIh
2532 AQEEBQAwdzELMAkGA1UEBhMCVVMxLDAqBgNVBAoTI05ldHNjYXBlIENvbW11bm
2533 ljYXRpb25zIENvcnBvcmF0aW9uMRwwGgYDVQQLExNJbmZvcm1hdGlvbiBTeXN0
2534 <...the remainder of base64-encoded data...>
2535
25366.7.6. UID
2537
2538 Purpose: To specify a value that represents a globally unique
2539 identifier corresponding to the entity associated with the vCard.
2540
2541 Value type: A single URI value. It MAY also be reset to free-form
2542 text.
2543
2544 Cardinality: *1
2545
2546 Special notes: This property is used to uniquely identify the object
2547 that the vCard represents. The "uuid" URN namespace defined in
2548 [RFC4122] is particularly well suited to this task, but other URI
2549 schemes MAY be used. Free-form text MAY also be used.
2550
2551 ABNF:
2552
2553 UID-param = UID-uri-param / UID-text-param
2554 UID-value = UID-uri-value / UID-text-value
2555 ; Value and parameter MUST match.
2556
2557 UID-uri-param = "VALUE=uri"
2558 UID-uri-value = URI
2559
2560 UID-text-param = "VALUE=text"
2561 UID-text-value = text
2562
2563 UID-param =/ any-param
2564
2565 Example:
2566
2567 UID:urn:uuid:f81d4fae-7dec-11d0-a765-00a0c91e6bf6
2568
2569
2570
2571
2572
2573
2574
2575
2576
2577
2578Perreault Standards Track [Page 46]
2579
2580RFC 6350 vCard August 2011
2581
2582
25836.7.7. CLIENTPIDMAP
2584
2585 Purpose: To give a global meaning to a local PID source identifier.
2586
2587 Value type: A semicolon-separated pair of values. The first field
2588 is a small integer corresponding to the second field of a PID
2589 parameter instance. The second field is a URI. The "uuid" URN
2590 namespace defined in [RFC4122] is particularly well suited to this
2591 task, but other URI schemes MAY be used.
2592
2593 Cardinality: *
2594
2595 Special notes: PID source identifiers (the source identifier is the
2596 second field in a PID parameter instance) are small integers that
2597 only have significance within the scope of a single vCard
2598 instance. Each distinct source identifier present in a vCard MUST
2599 have an associated CLIENTPIDMAP. See Section 7 for more details
2600 on the usage of CLIENTPIDMAP.
2601
2602 PID source identifiers MUST be strictly positive. Zero is not
2603 allowed.
2604
2605 As a special exception, the PID parameter MUST NOT be applied to
2606 this property.
2607
2608 ABNF:
2609
2610 CLIENTPIDMAP-param = any-param
2611 CLIENTPIDMAP-value = 1*DIGIT ";" URI
2612
2613 Example:
2614
2615 TEL;PID=3.1,4.2;VALUE=uri:tel:+1-555-555-5555
2616 EMAIL;PID=4.1,5.2:jdoe@example.com
2617 CLIENTPIDMAP:1;urn:uuid:3df403f4-5924-4bb7-b077-3c711d9eb34b
2618 CLIENTPIDMAP:2;urn:uuid:d89c9c7a-2e1b-4832-82de-7e992d95faa5
2619
26206.7.8. URL
2621
2622 Purpose: To specify a uniform resource locator associated with the
2623 object to which the vCard refers. Examples for individuals
2624 include personal web sites, blogs, and social networking site
2625 identifiers.
2626
2627 Cardinality: *
2628
2629 Value type: A single uri value.
2630
2631
2632
2633
2634Perreault Standards Track [Page 47]
2635
2636RFC 6350 vCard August 2011
2637
2638
2639 ABNF:
2640
2641 URL-param = "VALUE=uri" / pid-param / pref-param / type-param
2642 / mediatype-param / altid-param / any-param
2643 URL-value = URI
2644
2645 Example:
2646
2647 URL:http://example.org/restaurant.french/~chezchic.html
2648
26496.7.9. VERSION
2650
2651 Purpose: To specify the version of the vCard specification used to
2652 format this vCard.
2653
2654 Value type: A single text value.
2655
2656 Cardinality: 1
2657
2658 Special notes: This property MUST be present in the vCard object,
2659 and it must appear immediately after BEGIN:VCARD. The value MUST
2660 be "4.0" if the vCard corresponds to this specification. Note
2661 that earlier versions of vCard allowed this property to be placed
2662 anywhere in the vCard object, or even to be absent.
2663
2664 ABNF:
2665
2666 VERSION-param = "VALUE=text" / any-param
2667 VERSION-value = "4.0"
2668
2669 Example:
2670
2671 VERSION:4.0
2672
26736.8. Security Properties
2674
2675 These properties are concerned with the security of communication
2676 pathways or access to the vCard.
2677
26786.8.1. KEY
2679
2680 Purpose: To specify a public key or authentication certificate
2681 associated with the object that the vCard represents.
2682
2683 Value type: A single URI. It can also be reset to a text value.
2684
2685 Cardinality: *
2686
2687
2688
2689
2690Perreault Standards Track [Page 48]
2691
2692RFC 6350 vCard August 2011
2693
2694
2695 ABNF:
2696
2697 KEY-param = KEY-uri-param / KEY-text-param
2698 KEY-value = KEY-uri-value / KEY-text-value
2699 ; Value and parameter MUST match.
2700
2701 KEY-uri-param = "VALUE=uri" / mediatype-param
2702 KEY-uri-value = URI
2703
2704 KEY-text-param = "VALUE=text"
2705 KEY-text-value = text
2706
2707 KEY-param =/ altid-param / pid-param / pref-param / type-param
2708 / any-param
2709
2710 Examples:
2711
2712 KEY:http://www.example.com/keys/jdoe.cer
2713
2714 KEY;MEDIATYPE=application/pgp-keys:ftp://example.com/keys/jdoe
2715
2716 KEY:data:application/pgp-keys;base64,MIICajCCAdOgAwIBAgICBE
2717 UwDQYJKoZIhvcNAQEEBQAwdzELMAkGA1UEBhMCVVMxLDAqBgNVBAoTI05l
2718 <... remainder of base64-encoded data ...>
2719
27206.9. Calendar Properties
2721
2722 These properties are further specified in [RFC2739].
2723
27246.9.1. FBURL
2725
2726 Purpose: To specify the URI for the busy time associated with the
2727 object that the vCard represents.
2728
2729 Value type: A single URI value.
2730
2731 Cardinality: *
2732
2733 Special notes: Where multiple FBURL properties are specified, the
2734 default FBURL property is indicated with the PREF parameter. The
2735 FTP [RFC1738] or HTTP [RFC2616] type of URI points to an iCalendar
2736 [RFC5545] object associated with a snapshot of the next few weeks
2737 or months of busy time data. If the iCalendar object is
2738 represented as a file or document, its file extension should be
2739 ".ifb".
2740
2741
2742
2743
2744
2745
2746Perreault Standards Track [Page 49]
2747
2748RFC 6350 vCard August 2011
2749
2750
2751 ABNF:
2752
2753 FBURL-param = "VALUE=uri" / pid-param / pref-param / type-param
2754 / mediatype-param / altid-param / any-param
2755 FBURL-value = URI
2756
2757 Examples:
2758
2759 FBURL;PREF=1:http://www.example.com/busy/janedoe
2760 FBURL;MEDIATYPE=text/calendar:ftp://example.com/busy/project-a.ifb
2761
27626.9.2. CALADRURI
2763
2764 Purpose: To specify the calendar user address [RFC5545] to which a
2765 scheduling request [RFC5546] should be sent for the object
2766 represented by the vCard.
2767
2768 Value type: A single URI value.
2769
2770 Cardinality: *
2771
2772 Special notes: Where multiple CALADRURI properties are specified,
2773 the default CALADRURI property is indicated with the PREF
2774 parameter.
2775
2776 ABNF:
2777
2778 CALADRURI-param = "VALUE=uri" / pid-param / pref-param / type-param
2779 / mediatype-param / altid-param / any-param
2780 CALADRURI-value = URI
2781
2782 Example:
2783
2784 CALADRURI;PREF=1:mailto:janedoe@example.com
2785 CALADRURI:http://example.com/calendar/jdoe
2786
27876.9.3. CALURI
2788
2789 Purpose: To specify the URI for a calendar associated with the
2790 object represented by the vCard.
2791
2792 Value type: A single URI value.
2793
2794 Cardinality: *
2795
2796 Special notes: Where multiple CALURI properties are specified, the
2797 default CALURI property is indicated with the PREF parameter. The
2798 property should contain a URI pointing to an iCalendar [RFC5545]
2799
2800
2801
2802Perreault Standards Track [Page 50]
2803
2804RFC 6350 vCard August 2011
2805
2806
2807 object associated with a snapshot of the user's calendar store.
2808 If the iCalendar object is represented as a file or document, its
2809 file extension should be ".ics".
2810
2811 ABNF:
2812
2813 CALURI-param = "VALUE=uri" / pid-param / pref-param / type-param
2814 / mediatype-param / altid-param / any-param
2815 CALURI-value = URI
2816
2817 Examples:
2818
2819 CALURI;PREF=1:http://cal.example.com/calA
2820 CALURI;MEDIATYPE=text/calendar:ftp://ftp.example.com/calA.ics
2821
28226.10. Extended Properties and Parameters
2823
2824 The properties and parameters defined by this document can be
2825 extended. Non-standard, private properties and parameters with a
2826 name starting with "X-" may be defined bilaterally between two
2827 cooperating agents without outside registration or standardization.
2828
28297. Synchronization
2830
2831 vCard data often needs to be synchronized between devices. In this
2832 context, synchronization is defined as the intelligent merging of two
2833 representations of the same object. vCard 4.0 includes mechanisms to
2834 aid this process.
2835
28367.1. Mechanisms
2837
2838 Two mechanisms are available: the UID property is used to match
2839 multiple instances of the same vCard, while the PID parameter is used
2840 to match multiple instances of the same property.
2841
2842 The term "matching" is used here to mean recognizing that two
2843 instances are in fact representations of the same object. For
2844 example, a single vCard that is shared with someone results in two
2845 vCard instances. After they have evolved separately, they still
2846 represent the same object, and therefore may be matched by a
2847 synchronization engine.
2848
28497.1.1. Matching vCard Instances
2850
2851 vCard instances for which the UID properties (Section 6.7.6) are
2852 equivalent MUST be matched. Equivalence is determined as specified
2853 in [RFC3986], Section 6.
2854
2855
2856
2857
2858Perreault Standards Track [Page 51]
2859
2860RFC 6350 vCard August 2011
2861
2862
2863 In all other cases, vCard instances MAY be matched at the discretion
2864 of the synchronization engine.
2865
28667.1.2. Matching Property Instances
2867
2868 Property instances belonging to unmatched vCards MUST NOT be matched.
2869
2870 Property instances whose name (e.g., EMAIL, TEL, etc.) is not the
2871 same MUST NOT be matched.
2872
2873 Property instances whose name is CLIENTPIDMAP are handled separately
2874 and MUST NOT be matched. The synchronization MUST ensure that there
2875 is consistency of CLIENTPIDMAPs among matched vCard instances.
2876
2877 Property instances belonging to matched vCards, whose name is the
2878 same, and whose maximum cardinality is 1, MUST be matched.
2879
2880 Property instances belonging to matched vCards, whose name is the
2881 same, and whose PID parameters match, MUST be matched. See
2882 Section 7.1.3 for details on PID matching.
2883
2884 In all other cases, property instances MAY be matched at the
2885 discretion of the synchronization engine.
2886
28877.1.3. PID Matching
2888
2889 Two PID values for which the first fields are equivalent represent
2890 the same local value.
2891
2892 Two PID values representing the same local value and for which the
2893 second fields point to CLIENTPIDMAP properties whose second field
2894 URIs are equivalent (as specified in [RFC3986], Section 6) also
2895 represent the same global value.
2896
2897 PID parameters for which at least one pair of their values represent
2898 the same global value MUST be matched.
2899
2900 In all other cases, PID parameters MAY be matched at the discretion
2901 of the synchronization engine.
2902
2903 For example, PID value "5.1", in the first vCard below, and PID value
2904 "5.2", in the second vCard below, represent the same global value.
2905
2906
2907
2908
2909
2910
2911
2912
2913
2914Perreault Standards Track [Page 52]
2915
2916RFC 6350 vCard August 2011
2917
2918
2919 BEGIN:VCARD
2920 VERSION:4.0
2921 EMAIL;PID=4.2,5.1:jdoe@example.com
2922 CLIENTPIDMAP:1;urn:uuid:3eef374e-7179-4196-a914-27358c3e6527
2923 CLIENTPIDMAP:2;urn:uuid:42bcd5a7-1699-4514-87b4-056edf68e9cc
2924 END:VCARD
2925
2926 BEGIN:VCARD
2927 VERSION:4.0
2928 EMAIL;PID=5.1,5.2:john@example.com
2929 CLIENTPIDMAP:1;urn:uuid:0c75c629-6a8d-4d5e-a07f-1bb35846854d
2930 CLIENTPIDMAP:2;urn:uuid:3eef374e-7179-4196-a914-27358c3e6527
2931 END:VCARD
2932
29337.2. Example
2934
29357.2.1. Creation
2936
2937 The following simple vCard is first created on a given device.
2938
2939 BEGIN:VCARD
2940 VERSION:4.0
2941 UID:urn:uuid:4fbe8971-0bc3-424c-9c26-36c3e1eff6b1
2942 FN;PID=1.1:J. Doe
2943 N:Doe;J.;;;
2944 EMAIL;PID=1.1:jdoe@example.com
2945 CLIENTPIDMAP:1;urn:uuid:53e374d9-337e-4727-8803-a1e9c14e0556
2946 END:VCARD
2947
2948 This new vCard is assigned the UID
2949 "urn:uuid:4fbe8971-0bc3-424c-9c26-36c3e1eff6b1" by the creating
2950 device. The FN and EMAIL properties are assigned the same local
2951 value of 1, and this value is given global context by associating it
2952 with "urn:uuid:53e374d9-337e-4727-8803-a1e9c14e0556", which
2953 represents the creating device. We are at liberty to reuse the same
2954 local value since instances of different properties will never be
2955 matched. The N property has no PID because it is forbidden by its
2956 maximum cardinality of 1.
2957
29587.2.2. Initial Sharing
2959
2960 This vCard is shared with a second device. Upon inspecting the UID
2961 property, the second device understands that this is a new vCard
2962 (i.e., unmatched) and thus the synchronization results in a simple
2963 copy.
2964
2965
2966
2967
2968
2969
2970Perreault Standards Track [Page 53]
2971
2972RFC 6350 vCard August 2011
2973
2974
29757.2.3. Adding and Sharing a Property
2976
2977 A new phone number is created on the first device, then the vCard is
2978 shared with the second device. This is what the second device
2979 receives:
2980
2981 BEGIN:VCARD
2982 VERSION:4.0
2983 UID:urn:uuid:4fbe8971-0bc3-424c-9c26-36c3e1eff6b1
2984 FN;PID=1.1:J. Doe
2985 N:Doe;J.;;;
2986 EMAIL;PID=1.1:jdoe@example.com
2987 TEL;PID=1.1;VALUE=uri:tel:+1-555-555-5555
2988 CLIENTPIDMAP:1;urn:uuid:53e374d9-337e-4727-8803-a1e9c14e0556
2989 END:VCARD
2990
2991 Upon inspecting the UID property, the second device matches the vCard
2992 it received to the vCard that it already has stored. It then starts
2993 comparing the properties of the two vCards in same-named pairs.
2994
2995 The FN properties are matched because the PID parameters have the
2996 same global value. Since the property value is the same, no update
2997 takes place.
2998
2999 The N properties are matched automatically because their maximum
3000 cardinality is 1. Since the property value is the same, no update
3001 takes place.
3002
3003 The EMAIL properties are matched because the PID parameters have the
3004 same global value. Since the property value is the same, no update
3005 takes place.
3006
3007 The TEL property in the new vCard is not matched to any in the stored
3008 vCard because no property in the stored vCard has the same name.
3009 Therefore, this property is copied from the new vCard to the stored
3010 vCard.
3011
3012 The CLIENTPIDMAP property is handled separately by the
3013 synchronization engine. It ensures that it is consistent with the
3014 stored one. If it was not, the results would be up to the
3015 synchronization engine, and thus undefined by this document.
3016
30177.2.4. Simultaneous Editing
3018
3019 A new email address and a new phone number are added to the vCard on
3020 each of the two devices, and then a new synchronization event
3021 happens. Here are the vCards that are communicated to each other:
3022
3023
3024
3025
3026Perreault Standards Track [Page 54]
3027
3028RFC 6350 vCard August 2011
3029
3030
3031 BEGIN:VCARD
3032 VERSION:4.0
3033 UID:urn:uuid:4fbe8971-0bc3-424c-9c26-36c3e1eff6b1
3034 FN;PID=1.1:J. Doe
3035 N:Doe;J.;;;
3036 EMAIL;PID=1.1:jdoe@example.com
3037 EMAIL;PID=2.1:boss@example.com
3038 TEL;PID=1.1;VALUE=uri:tel:+1-555-555-5555
3039 TEL;PID=2.1;VALUE=uri:tel:+1-666-666-6666
3040 CLIENTPIDMAP:1;urn:uuid:53e374d9-337e-4727-8803-a1e9c14e0556
3041 END:VCARD
3042
3043 BEGIN:VCARD
3044 VERSION:4.0
3045 UID:urn:uuid:4fbe8971-0bc3-424c-9c26-36c3e1eff6b1
3046 FN;PID=1.1:J. Doe
3047 N:Doe;J.;;;
3048 EMAIL;PID=1.1:jdoe@example.com
3049 EMAIL;PID=2.2:ceo@example.com
3050 TEL;PID=1.1;VALUE=uri:tel:+1-555-555-5555
3051 TEL;PID=2.2;VALUE=uri:tel:+1-666-666-6666
3052 CLIENTPIDMAP:1;urn:uuid:53e374d9-337e-4727-8803-a1e9c14e0556
3053 CLIENTPIDMAP:2;urn:uuid:1f762d2b-03c4-4a83-9a03-75ff658a6eee
3054 END:VCARD
3055
3056 On the first device, the same PID source identifier (1) is reused for
3057 the new EMAIL and TEL properties. On the second device, a new source
3058 identifier (2) is generated, and a corresponding CLIENTPIDMAP
3059 property is created. It contains the second device's identifier,
3060 "urn:uuid:1f762d2b-03c4-4a83-9a03-75ff658a6eee".
3061
3062 The new EMAIL properties are unmatched on both sides since the PID
3063 global value is new in both cases. The sync thus results in a copy
3064 on both sides.
3065
3066 Although the situation appears to be the same for the TEL properties,
3067 in this case, the synchronization engine is particularly smart and
3068 matches the two new TEL properties even though their PID global
3069 values are different. Note that in this case, the rules of
3070 Section 7.1.2 state that two properties MAY be matched at the
3071 discretion of the synchronization engine. Therefore, the two
3072 properties are merged.
3073
3074 All this results in the following vCard, which is stored on both
3075 devices:
3076
3077
3078
3079
3080
3081
3082Perreault Standards Track [Page 55]
3083
3084RFC 6350 vCard August 2011
3085
3086
3087 BEGIN:VCARD
3088 VERSION:4.0
3089 UID:urn:uuid:4fbe8971-0bc3-424c-9c26-36c3e1eff6b1
3090 FN:J. Doe
3091 N:Doe;J.;;;
3092 EMAIL;PID=1.1:jdoe@example.com
3093 EMAIL;PID=2.1:boss@example.com
3094 EMAIL;PID=2.2:ceo@example.com
3095 TEL;PID=1.1;VALUE=uri:tel:+1-555-555-5555
3096 TEL;PID=2.1,2.2;VALUE=uri:tel:+1-666-666-6666
3097 CLIENTPIDMAP:1;urn:uuid:53e374d9-337e-4727-8803-a1e9c14e0556
3098 CLIENTPIDMAP:2;urn:uuid:1f762d2b-03c4-4a83-9a03-75ff658a6eee
3099 END:VCARD
3100
31017.2.5. Global Context Simplification
3102
3103 The two devices finish their synchronization procedure by simplifying
3104 their global contexts. Since they haven't talked to any other
3105 device, the following vCard is for all purposes equivalent to the
3106 above. It is also shorter.
3107
3108 BEGIN:VCARD
3109 VERSION:4.0
3110 UID:urn:uuid:4fbe8971-0bc3-424c-9c26-36c3e1eff6b1
3111 FN:J. Doe
3112 N:Doe;J.;;;
3113 EMAIL;PID=1.1:jdoe@example.com
3114 EMAIL;PID=2.1:boss@example.com
3115 EMAIL;PID=3.1:ceo@example.com
3116 TEL;PID=1.1;VALUE=uri:tel:+1-555-555-5555
3117 TEL;PID=2.1;VALUE=uri:tel:+1-666-666-6666
3118 CLIENTPIDMAP:1;urn:uuid:53e374d9-337e-4727-8803-a1e9c14e0556
3119 END:VCARD
3120
3121 The details of global context simplification are unspecified by this
3122 document. They are left up to the synchronization engine. This
3123 example is merely intended to illustrate the possibility, which
3124 investigating would be, in the author's opinion, worthwhile.
3125
31268. Example: Author's vCard
3127
3128 BEGIN:VCARD
3129 VERSION:4.0
3130 FN:Simon Perreault
3131 N:Perreault;Simon;;;ing. jr,M.Sc.
3132 BDAY:--0203
3133 ANNIVERSARY:20090808T1430-0500
3134 GENDER:M
3135
3136
3137
3138Perreault Standards Track [Page 56]
3139
3140RFC 6350 vCard August 2011
3141
3142
3143 LANG;PREF=1:fr
3144 LANG;PREF=2:en
3145 ORG;TYPE=work:Viagenie
3146 ADR;TYPE=work:;Suite D2-630;2875 Laurier;
3147 Quebec;QC;G1V 2M2;Canada
3148 TEL;VALUE=uri;TYPE="work,voice";PREF=1:tel:+1-418-656-9254;ext=102
3149 TEL;VALUE=uri;TYPE="work,cell,voice,video,text":tel:+1-418-262-6501
3150 EMAIL;TYPE=work:simon.perreault@viagenie.ca
3151 GEO;TYPE=work:geo:46.772673,-71.282945
3152 KEY;TYPE=work;VALUE=uri:
3153 http://www.viagenie.ca/simon.perreault/simon.asc
3154 TZ:-0500
3155 URL;TYPE=home:http://nomis80.org
3156 END:VCARD
3157
31589. Security Considerations
3159
3160 o Internet mail is often used to transport vCards and is subject to
3161 many well-known security attacks, including monitoring, replay,
3162 and forgery. Care should be taken by any directory service in
3163 allowing information to leave the scope of the service itself,
3164 where any access controls or confidentiality can no longer be
3165 guaranteed. Applications should also take care to display
3166 directory data in a "safe" environment.
3167
3168 o vCards can carry cryptographic keys or certificates, as described
3169 in Section 6.8.1.
3170
3171 o vCards often carry information that can be sensitive (e.g.,
3172 birthday, address, and phone information). Although vCards have
3173 no inherent authentication or confidentiality provisions, they can
3174 easily be carried by any security mechanism that transfers MIME
3175 objects to address authentication or confidentiality (e.g., S/MIME
3176 [RFC5751], OpenPGP [RFC4880]). In cases where the confidentiality
3177 or authenticity of information contained in vCard is a concern,
3178 the vCard SHOULD be transported using one of these secure
3179 mechanisms. The KEY property (Section 6.8.1) can be used to
3180 transport the public key used by these mechanisms.
3181
3182 o The information in a vCard may become out of date. In cases where
3183 the vitality of data is important to an originator of a vCard, the
3184 SOURCE property (Section 6.1.3) SHOULD be specified. In addition,
3185 the "REV" type described in Section 6.7.4 can be specified to
3186 indicate the last time that the vCard data was updated.
3187
3188 o Many vCard properties may be used to transport URIs. Please refer
3189 to [RFC3986], Section 7, for considerations related to URIs.
3190
3191
3192
3193
3194Perreault Standards Track [Page 57]
3195
3196RFC 6350 vCard August 2011
3197
3198
319910. IANA Considerations
3200
320110.1. Media Type Registration
3202
3203 IANA has registered the following Media Type (in
3204 <http://www.iana.org/>) and marked the text/directory Media Type as
3205 DEPRECATED.
3206
3207 To: ietf-types@iana.org
3208
3209 Subject: Registration of media type text/vcard
3210
3211 Type name: text
3212
3213 Subtype name: vcard
3214
3215 Required parameters: none
3216
3217 Optional parameters: version
3218
3219 The "version" parameter is to be interpreted identically as the
3220 VERSION vCard property. If this parameter is present, all vCards
3221 in a text/vcard body part MUST have a VERSION property with value
3222 identical to that of this MIME parameter.
3223
3224 "charset": as defined for text/plain [RFC2046]; encodings other
3225 than UTF-8 [RFC3629] MUST NOT be used.
3226
3227 Encoding considerations: 8bit
3228
3229 Security considerations: See Section 9.
3230
3231 Interoperability considerations: The text/vcard media type is
3232 intended to identify vCard data of any version. There are older
3233 specifications of vCard [RFC2426][vCard21] still in common use.
3234 While these formats are similar, they are not strictly compatible.
3235 In general, it is necessary to inspect the value of the VERSION
3236 property (see Section 6.7.9) for identifying the standard to which
3237 a given vCard object conforms.
3238
3239 In addition, the following media types are known to have been used
3240 to refer to vCard data. They should be considered deprecated in
3241 favor of text/vcard.
3242
3243 * text/directory
3244 * text/directory; profile=vcard
3245 * text/x-vcard
3246
3247
3248
3249
3250Perreault Standards Track [Page 58]
3251
3252RFC 6350 vCard August 2011
3253
3254
3255 Published specification: RFC 6350
3256
3257 Applications that use this media type: They are numerous, diverse,
3258 and include mail user agents, instant messaging clients, address
3259 book applications, directory servers, and customer relationship
3260 management software.
3261
3262 Additional information:
3263
3264 Magic number(s):
3265
3266 File extension(s): .vcf .vcard
3267
3268 Macintosh file type code(s):
3269
3270 Person & email address to contact for further information: vCard
3271 discussion mailing list <vcarddav@ietf.org>
3272
3273 Intended usage: COMMON
3274
3275 Restrictions on usage: none
3276
3277 Author: Simon Perreault
3278
3279 Change controller: IETF
3280
328110.2. Registering New vCard Elements
3282
3283 This section defines the process for registering new or modified
3284 vCard elements (i.e., properties, parameters, value data types, and
3285 values) with IANA.
3286
328710.2.1. Registration Procedure
3288
3289 The IETF has created a mailing list, vcarddav@ietf.org, which can be
3290 used for public discussion of vCard element proposals prior to
3291 registration. Use of the mailing list is strongly encouraged. The
3292 IESG has appointed a designated expert who will monitor the
3293 vcarddav@ietf.org mailing list and review registrations.
3294
3295 Registration of new vCard elements MUST be reviewed by the designated
3296 expert and published in an RFC. A Standards Track RFC is REQUIRED
3297 for the registration of new value data types that modify existing
3298 properties. A Standards Track RFC is also REQUIRED for registration
3299 of vCard elements that modify vCard elements previously documented in
3300 a Standards Track RFC.
3301
3302
3303
3304
3305
3306Perreault Standards Track [Page 59]
3307
3308RFC 6350 vCard August 2011
3309
3310
3311 The registration procedure begins when a completed registration
3312 template, defined in the sections below, is sent to vcarddav@ietf.org
3313 and iana@iana.org. Within two weeks, the designated expert is
3314 expected to tell IANA and the submitter of the registration whether
3315 the registration is approved, approved with minor changes, or
3316 rejected with cause. When a registration is rejected with cause, it
3317 can be re-submitted if the concerns listed in the cause are
3318 addressed. Decisions made by the designated expert can be appealed
3319 to the IESG Applications Area Director, then to the IESG. They
3320 follow the normal appeals procedure for IESG decisions.
3321
3322 Once the registration procedure concludes successfully, IANA creates
3323 or modifies the corresponding record in the vCard registry. The
3324 completed registration template is discarded.
3325
3326 An RFC specifying new vCard elements MUST include the completed
3327 registration templates, which MAY be expanded with additional
3328 information. These completed templates are intended to go in the
3329 body of the document, not in the IANA Considerations section.
3330
3331 Finally, note that there is an XML representation for vCard defined
3332 in [RFC6351]. An XML representation SHOULD be defined for new vCard
3333 elements.
3334
333510.2.2. Vendor Namespace
3336
3337 The vendor namespace is used for vCard elements associated with
3338 commercially available products. "Vendor" or "producer" are
3339 construed as equivalent and very broadly in this context.
3340
3341 A registration may be placed in the vendor namespace by anyone who
3342 needs to interchange files associated with the particular product.
3343 However, the registration formally belongs to the vendor or
3344 organization handling the vCard elements in the namespace being
3345 registered. Changes to the specification will be made at their
3346 request, as discussed in subsequent sections.
3347
3348 vCard elements belonging to the vendor namespace will be
3349 distinguished by the "VND-" prefix. This is followed by an IANA-
3350 registered Private Enterprise Number (PEN), a dash, and a vCard
3351 element designation of the vendor's choosing (e.g., "VND-123456-
3352 MUDPIE").
3353
3354 While public exposure and review of vCard elements to be registered
3355 in the vendor namespace are not required, using the vcarddav@ietf.org
3356 mailing list for review is strongly encouraged to improve the quality
3357 of those specifications. Registrations in the vendor namespace may
3358 be submitted directly to the IANA.
3359
3360
3361
3362Perreault Standards Track [Page 60]
3363
3364RFC 6350 vCard August 2011
3365
3366
336710.2.3. Registration Template for Properties
3368
3369 A property is defined by completing the following template.
3370
3371 Namespace: Empty for the global namespace, "VND-NNNN-" for a vendor-
3372 specific property (where NNNN is replaced by the vendor's PEN).
3373
3374 Property name: The name of the property.
3375
3376 Purpose: The purpose of the property. Give a short but clear
3377 description.
3378
3379 Value type: Any of the valid value types for the property value
3380 needs to be specified. The default value type also needs to be
3381 specified.
3382
3383 Cardinality: See Section 6.
3384
3385 Property parameters: Any of the valid property parameters for the
3386 property MUST be specified.
3387
3388 Description: Any special notes about the property, how it is to be
3389 used, etc.
3390
3391 Format definition: The ABNF for the property definition needs to be
3392 specified.
3393
3394 Example(s): One or more examples of instances of the property need
3395 to be specified.
3396
339710.2.4. Registration Template for Parameters
3398
3399 A parameter is defined by completing the following template.
3400
3401 Namespace: Empty for the global namespace, "VND-NNNN-" for a vendor-
3402 specific property (where NNNN is replaced by the vendor's PEN).
3403
3404 Parameter name: The name of the parameter.
3405
3406 Purpose: The purpose of the parameter. Give a short but clear
3407 description.
3408
3409 Description: Any special notes about the parameter, how it is to be
3410 used, etc.
3411
3412 Format definition: The ABNF for the parameter definition needs to be
3413 specified.
3414
3415
3416
3417
3418Perreault Standards Track [Page 61]
3419
3420RFC 6350 vCard August 2011
3421
3422
3423 Example(s): One or more examples of instances of the parameter need
3424 to be specified.
3425
342610.2.5. Registration Template for Value Data Types
3427
3428 A value data type is defined by completing the following template.
3429
3430 Value name: The name of the value type.
3431
3432 Purpose: The purpose of the value type. Give a short but clear
3433 description.
3434
3435 Description: Any special notes about the value type, how it is to be
3436 used, etc.
3437
3438 Format definition: The ABNF for the value type definition needs to
3439 be specified.
3440
3441 Example(s): One or more examples of instances of the value type need
3442 to be specified.
3443
344410.2.6. Registration Template for Values
3445
3446 A value is defined by completing the following template.
3447
3448 Value: The value literal.
3449
3450 Purpose: The purpose of the value. Give a short but clear
3451 description.
3452
3453 Conformance: The vCard properties and/or parameters that can take
3454 this value needs to be specified.
3455
3456 Example(s): One or more examples of instances of the value need to
3457 be specified.
3458
3459 The following is a fictitious example of a registration of a vCard
3460 value:
3461
3462 Value: supervisor
3463
3464 Purpose: It means that the related entity is the direct hierarchical
3465 superior (i.e., supervisor or manager) of the entity this vCard
3466 represents.
3467
3468 Conformance: This value can be used with the "TYPE" parameter
3469 applied on the "RELATED" property.
3470
3471
3472
3473
3474Perreault Standards Track [Page 62]
3475
3476RFC 6350 vCard August 2011
3477
3478
3479 Example(s):
3480
3481 RELATED;TYPE=supervisor:urn:uuid:f81d4fae-7dec-11d0-a765-00a0c91e6bf6
3482
348310.3. Initial vCard Elements Registries
3484
3485 The IANA has created and will maintain the following registries for
3486 vCard elements with pointers to appropriate reference documents. The
3487 registries are grouped together under the heading "vCard Elements".
3488
3489
3490
3491
3492
3493
3494
3495
3496
3497
3498
3499
3500
3501
3502
3503
3504
3505
3506
3507
3508
3509
3510
3511
3512
3513
3514
3515
3516
3517
3518
3519
3520
3521
3522
3523
3524
3525
3526
3527
3528
3529
3530Perreault Standards Track [Page 63]
3531
3532RFC 6350 vCard August 2011
3533
3534
353510.3.1. Properties Registry
3536
3537 The following table has been used to initialize the properties
3538 registry.
3539
3540 +-----------+--------------+-------------------------+
3541 | Namespace | Property | Reference |
3542 +-----------+--------------+-------------------------+
3543 | | SOURCE | RFC 6350, Section 6.1.3 |
3544 | | KIND | RFC 6350, Section 6.1.4 |
3545 | | XML | RFC 6350, Section 6.1.5 |
3546 | | FN | RFC 6350, Section 6.2.1 |
3547 | | N | RFC 6350, Section 6.2.2 |
3548 | | NICKNAME | RFC 6350, Section 6.2.3 |
3549 | | PHOTO | RFC 6350, Section 6.2.4 |
3550 | | BDAY | RFC 6350, Section 6.2.5 |
3551 | | ANNIVERSARY | RFC 6350, Section 6.2.6 |
3552 | | GENDER | RFC 6350, Section 6.2.7 |
3553 | | ADR | RFC 6350, Section 6.3.1 |
3554 | | TEL | RFC 6350, Section 6.4.1 |
3555 | | EMAIL | RFC 6350, Section 6.4.2 |
3556 | | IMPP | RFC 6350, Section 6.4.3 |
3557 | | LANG | RFC 6350, Section 6.4.4 |
3558 | | TZ | RFC 6350, Section 6.5.1 |
3559 | | GEO | RFC 6350, Section 6.5.2 |
3560 | | TITLE | RFC 6350, Section 6.6.1 |
3561 | | ROLE | RFC 6350, Section 6.6.2 |
3562 | | LOGO | RFC 6350, Section 6.6.3 |
3563 | | ORG | RFC 6350, Section 6.6.4 |
3564 | | MEMBER | RFC 6350, Section 6.6.5 |
3565 | | RELATED | RFC 6350, Section 6.6.6 |
3566 | | CATEGORIES | RFC 6350, Section 6.7.1 |
3567 | | NOTE | RFC 6350, Section 6.7.2 |
3568 | | PRODID | RFC 6350, Section 6.7.3 |
3569 | | REV | RFC 6350, Section 6.7.4 |
3570 | | SOUND | RFC 6350, Section 6.7.5 |
3571 | | UID | RFC 6350, Section 6.7.6 |
3572 | | CLIENTPIDMAP | RFC 6350, Section 6.7.7 |
3573 | | URL | RFC 6350, Section 6.7.8 |
3574 | | VERSION | RFC 6350, Section 6.7.9 |
3575 | | KEY | RFC 6350, Section 6.8.1 |
3576 | | FBURL | RFC 6350, Section 6.9.1 |
3577 | | CALADRURI | RFC 6350, Section 6.9.2 |
3578 | | CALURI | RFC 6350, Section 6.9.3 |
3579 +-----------+--------------+-------------------------+
3580
3581
3582
3583
3584
3585
3586Perreault Standards Track [Page 64]
3587
3588RFC 6350 vCard August 2011
3589
3590
359110.3.2. Parameters Registry
3592
3593 The following table has been used to initialize the parameters
3594 registry.
3595
3596 +-----------+-----------+------------------------+
3597 | Namespace | Parameter | Reference |
3598 +-----------+-----------+------------------------+
3599 | | LANGUAGE | RFC 6350, Section 5.1 |
3600 | | VALUE | RFC 6350, Section 5.2 |
3601 | | PREF | RFC 6350, Section 5.3 |
3602 | | ALTID | RFC 6350, Section 5.4 |
3603 | | PID | RFC 6350, Section 5.5 |
3604 | | TYPE | RFC 6350, Section 5.6 |
3605 | | MEDIATYPE | RFC 6350, Section 5.7 |
3606 | | CALSCALE | RFC 6350, Section 5.8 |
3607 | | SORT-AS | RFC 6350, Section 5.9 |
3608 | | GEO | RFC 6350, Section 5.10 |
3609 | | TZ | RFC 6350, Section 5.11 |
3610 +-----------+-----------+------------------------+
3611
361210.3.3. Value Data Types Registry
3613
3614 The following table has been used to initialize the parameters
3615 registry.
3616
3617 +------------------+-------------------------+
3618 | Value Data Type | Reference |
3619 +------------------+-------------------------+
3620 | BOOLEAN | RFC 6350, Section 4.4 |
3621 | DATE | RFC 6350, Section 4.3.1 |
3622 | DATE-AND-OR-TIME | RFC 6350, Section 4.3.4 |
3623 | DATE-TIME | RFC 6350, Section 4.3.3 |
3624 | FLOAT | RFC 6350, Section 4.6 |
3625 | INTEGER | RFC 6350, Section 4.5 |
3626 | LANGUAGE-TAG | RFC 6350, Section 4.8 |
3627 | TEXT | RFC 6350, Section 4.1 |
3628 | TIME | RFC 6350, Section 4.3.2 |
3629 | TIMESTAMP | RFC 6350, Section 4.3.5 |
3630 | URI | RFC 6350, Section 4.2 |
3631 | UTC-OFFSET | RFC 6350, Section 4.7 |
3632 +------------------+-------------------------+
3633
3634
3635
3636
3637
3638
3639
3640
3641
3642Perreault Standards Track [Page 65]
3643
3644RFC 6350 vCard August 2011
3645
3646
364710.3.4. Values Registries
3648
3649 Separate tables are used for property and parameter values.
3650
3651 The following table is to be used to initialize the property values
3652 registry.
3653
3654 +----------+------------+-------------------------+
3655 | Property | Value | Reference |
3656 +----------+------------+-------------------------+
3657 | BEGIN | VCARD | RFC 6350, Section 6.1.1 |
3658 | END | VCARD | RFC 6350, Section 6.1.2 |
3659 | KIND | individual | RFC 6350, Section 6.1.4 |
3660 | KIND | group | RFC 6350, Section 6.1.4 |
3661 | KIND | org | RFC 6350, Section 6.1.4 |
3662 | KIND | location | RFC 6350, Section 6.1.4 |
3663 +----------+------------+-------------------------+
3664
3665 The following table has been used to initialize the parameter values
3666 registry.
3667
3668
3669
3670
3671
3672
3673
3674
3675
3676
3677
3678
3679
3680
3681
3682
3683
3684
3685
3686
3687
3688
3689
3690
3691
3692
3693
3694
3695
3696
3697
3698Perreault Standards Track [Page 66]
3699
3700RFC 6350 vCard August 2011
3701
3702
3703 +------------------------+-----------+--------------+---------------+
3704 | Property | Parameter | Value | Reference |
3705 +------------------------+-----------+--------------+---------------+
3706 | FN, NICKNAME, PHOTO, | TYPE | work | RFC 6350, |
3707 | ADR, TEL, EMAIL, IMPP, | | | Section 5.6 |
3708 | LANG, TZ, GEO, TITLE, | | | |
3709 | ROLE, LOGO, ORG, | | | |
3710 | RELATED, CATEGORIES, | | | |
3711 | NOTE, SOUND, URL, KEY, | | | |
3712 | FBURL, CALADRURI, and | | | |
3713 | CALURI | | | |
3714 | FN, NICKNAME, PHOTO, | TYPE | home | RFC 6350, |
3715 | ADR, TEL, EMAIL, IMPP, | | | Section 5.6 |
3716 | LANG, TZ, GEO, TITLE, | | | |
3717 | ROLE, LOGO, ORG, | | | |
3718 | RELATED, CATEGORIES, | | | |
3719 | NOTE, SOUND, URL, KEY, | | | |
3720 | FBURL, CALADRURI, and | | | |
3721 | CALURI | | | |
3722 | TEL | TYPE | text | RFC 6350, |
3723 | | | | Section 6.4.1 |
3724 | TEL | TYPE | voice | RFC 6350, |
3725 | | | | Section 6.4.1 |
3726 | TEL | TYPE | fax | RFC 6350, |
3727 | | | | Section 6.4.1 |
3728 | TEL | TYPE | cell | RFC 6350, |
3729 | | | | Section 6.4.1 |
3730 | TEL | TYPE | video | RFC 6350, |
3731 | | | | Section 6.4.1 |
3732 | TEL | TYPE | pager | RFC 6350, |
3733 | | | | Section 6.4.1 |
3734 | TEL | TYPE | textphone | RFC 6350, |
3735 | | | | Section 6.4.1 |
3736 | BDAY, ANNIVERSARY | CALSCALE | gregorian | RFC 6350, |
3737 | | | | Section 5.8 |
3738 | RELATED | TYPE | contact | RFC 6350, |
3739 | | | | Section 6.6.6 |
3740 | | | | and [xfn] |
3741 | RELATED | TYPE | acquaintance | RFC 6350, |
3742 | | | | Section 6.6.6 |
3743 | | | | and [xfn] |
3744 | RELATED | TYPE | friend | RFC 6350, |
3745 | | | | Section 6.6.6 |
3746 | | | | and [xfn] |
3747 | RELATED | TYPE | met | RFC 6350, |
3748 | | | | Section 6.6.6 |
3749 | | | | and [xfn] |
3750
3751
3752
3753
3754Perreault Standards Track [Page 67]
3755
3756RFC 6350 vCard August 2011
3757
3758
3759 | RELATED | TYPE | co-worker | RFC 6350, |
3760 | | | | Section 6.6.6 |
3761 | | | | and [xfn] |
3762 | RELATED | TYPE | colleague | RFC 6350, |
3763 | | | | Section 6.6.6 |
3764 | | | | and [xfn] |
3765 | RELATED | TYPE | co-resident | RFC 6350, |
3766 | | | | Section 6.6.6 |
3767 | | | | and [xfn] |
3768 | RELATED | TYPE | neighbor | RFC 6350, |
3769 | | | | Section 6.6.6 |
3770 | | | | and [xfn] |
3771 | RELATED | TYPE | child | RFC 6350, |
3772 | | | | Section 6.6.6 |
3773 | | | | and [xfn] |
3774 | RELATED | TYPE | parent | RFC 6350, |
3775 | | | | Section 6.6.6 |
3776 | | | | and [xfn] |
3777 | RELATED | TYPE | sibling | RFC 6350, |
3778 | | | | Section 6.6.6 |
3779 | | | | and [xfn] |
3780 | RELATED | TYPE | spouse | RFC 6350, |
3781 | | | | Section 6.6.6 |
3782 | | | | and [xfn] |
3783 | RELATED | TYPE | kin | RFC 6350, |
3784 | | | | Section 6.6.6 |
3785 | | | | and [xfn] |
3786 | RELATED | TYPE | muse | RFC 6350, |
3787 | | | | Section 6.6.6 |
3788 | | | | and [xfn] |
3789 | RELATED | TYPE | crush | RFC 6350, |
3790 | | | | Section 6.6.6 |
3791 | | | | and [xfn] |
3792 | RELATED | TYPE | date | RFC 6350, |
3793 | | | | Section 6.6.6 |
3794 | | | | and [xfn] |
3795 | RELATED | TYPE | sweetheart | RFC 6350, |
3796 | | | | Section 6.6.6 |
3797 | | | | and [xfn] |
3798 | RELATED | TYPE | me | RFC 6350, |
3799 | | | | Section 6.6.6 |
3800 | | | | and [xfn] |
3801 | RELATED | TYPE | agent | RFC 6350, |
3802 | | | | Section 6.6.6 |
3803 | RELATED | TYPE | emergency | RFC 6350, |
3804 | | | | Section 6.6.6 |
3805 +------------------------+-----------+--------------+---------------+
3806
3807
3808
3809
3810Perreault Standards Track [Page 68]
3811
3812RFC 6350 vCard August 2011
3813
3814
381511. Acknowledgments
3816
3817 The authors would like to thank Tim Howes, Mark Smith, and Frank
3818 Dawson, the original authors of [RFC2425] and [RFC2426], Pete
3819 Resnick, who got this effort started and provided help along the way,
3820 as well as the following individuals who have participated in the
3821 drafting, review, and discussion of this memo:
3822
3823 Aki Niemi, Andy Mabbett, Alexander Mayrhofer, Alexey Melnikov, Anil
3824 Srivastava, Barry Leiba, Ben Fortuna, Bernard Desruisseaux, Bernie
3825 Hoeneisen, Bjoern Hoehrmann, Caleb Richardson, Chris Bryant, Chris
3826 Newman, Cyrus Daboo, Daisuke Miyakawa, Dan Brickley, Dan Mosedale,
3827 Dany Cauchie, Darryl Champagne, Dave Thewlis, Filip Navara, Florian
3828 Zeitz, Helge Hess, Jari Urpalainen, Javier Godoy, Jean-Luc Schellens,
3829 Joe Hildebrand, Jose Luis Gayosso, Joseph Smarr, Julian Reschke,
3830 Kepeng Li, Kevin Marks, Kevin Wu Won, Kurt Zeilenga, Lisa Dusseault,
3831 Marc Blanchet, Mark Paterson, Markus Lorenz, Michael Haardt, Mike
3832 Douglass, Nick Levinson, Peter K. Sheerin, Peter Mogensen, Peter
3833 Saint-Andre, Renato Iannella, Rohit Khare, Sly Gryphon, Stephane
3834 Bortzmeyer, Tantek Celik, and Zoltan Ordogh.
3835
383612. References
3837
383812.1. Normative References
3839
3840 [CCITT.X520.1988]
3841 International Telephone and Telegraph Consultative
3842 Committee, "Information Technology - Open Systems
3843 Interconnection - The Directory: Selected Attribute
3844 Types", CCITT Recommendation X.520, November 1988.
3845
3846 [IEEE.754.2008]
3847 Institute of Electrical and Electronics Engineers,
3848 "Standard for Binary Floating-Point Arithmetic",
3849 IEEE Standard 754, August 2008.
3850
3851 [ISO.8601.2000]
3852 International Organization for Standardization, "Data
3853 elements and interchange formats - Information interchange
3854 - Representation of dates and times", ISO Standard 8601,
3855 December 2000.
3856
3857 [ISO.8601.2004]
3858 International Organization for Standardization, "Data
3859 elements and interchange formats - Information interchange
3860 - Representation of dates and times", ISO Standard 8601,
3861 December 2004.
3862
3863
3864
3865
3866Perreault Standards Track [Page 69]
3867
3868RFC 6350 vCard August 2011
3869
3870
3871 [RFC2045] Freed, N. and N. Borenstein, "Multipurpose Internet Mail
3872 Extensions (MIME) Part One: Format of Internet Message
3873 Bodies", RFC 2045, November 1996.
3874
3875 [RFC2046] Freed, N. and N. Borenstein, "Multipurpose Internet Mail
3876 Extensions (MIME) Part Two: Media Types", RFC 2046,
3877 November 1996.
3878
3879 [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate
3880 Requirement Levels", BCP 14, RFC 2119, March 1997.
3881
3882 [RFC2739] Small, T., Hennessy, D., and F. Dawson, "Calendar
3883 Attributes for vCard and LDAP", RFC 2739, January 2000.
3884
3885 [RFC3629] Yergeau, F., "UTF-8, a transformation format of ISO
3886 10646", STD 63, RFC 3629, November 2003.
3887
3888 [RFC3966] Schulzrinne, H., "The tel URI for Telephone Numbers",
3889 RFC 3966, December 2004.
3890
3891 [RFC3986] Berners-Lee, T., Fielding, R., and L. Masinter, "Uniform
3892 Resource Identifier (URI): Generic Syntax", STD 66,
3893 RFC 3986, January 2005.
3894
3895 [RFC4122] Leach, P., Mealling, M., and R. Salz, "A Universally
3896 Unique IDentifier (UUID) URN Namespace", RFC 4122,
3897 July 2005.
3898
3899 [RFC4288] Freed, N. and J. Klensin, "Media Type Specifications and
3900 Registration Procedures", BCP 13, RFC 4288, December 2005.
3901
3902 [RFC5234] Crocker, D. and P. Overell, "Augmented BNF for Syntax
3903 Specifications: ABNF", STD 68, RFC 5234, January 2008.
3904
3905 [RFC5322] Resnick, P., Ed., "Internet Message Format", RFC 5322,
3906 October 2008.
3907
3908 [RFC5545] Desruisseaux, B., "Internet Calendaring and Scheduling
3909 Core Object Specification (iCalendar)", RFC 5545,
3910 September 2009.
3911
3912 [RFC5546] Daboo, C., "iCalendar Transport-Independent
3913 Interoperability Protocol (iTIP)", RFC 5546,
3914 December 2009.
3915
3916 [RFC5646] Phillips, A. and M. Davis, "Tags for Identifying
3917 Languages", BCP 47, RFC 5646, September 2009.
3918
3919
3920
3921
3922Perreault Standards Track [Page 70]
3923
3924RFC 6350 vCard August 2011
3925
3926
3927 [RFC5870] Mayrhofer, A. and C. Spanring, "A Uniform Resource
3928 Identifier for Geographic Locations ('geo' URI)",
3929 RFC 5870, June 2010.
3930
3931 [RFC6351] Perreault, S., "xCard: vCard XML Representation",
3932 RFC 6351, August 2011.
3933
3934 [W3C.REC-xml-20081126]
3935 Maler, E., Yergeau, F., Sperberg-McQueen, C., Paoli, J.,
3936 and T. Bray, "Extensible Markup Language (XML) 1.0 (Fifth
3937 Edition)", World Wide Web Consortium Recommendation REC-
3938 xml-20081126, November 2008,
3939 <http://www.w3.org/TR/2008/REC-xml-20081126>.
3940
3941 [xfn] Celik, T., Mullenweg, M., and E. Meyer, "XFN 1.1 profile",
3942 <http://gmpg.org/xfn/11>.
3943
394412.2. Informative References
3945
3946 [IANA-TZ] Lear, E. and P. Eggert, "IANA Procedures for Maintaining
3947 the Timezone Database", Work in Progress, May 2011.
3948
3949 [ISO9070] International Organization for Standardization,
3950 "Information Processing - SGML support facilities -
3951 Registration Procedures for Public Text Owner
3952 Identifiers", ISO 9070, April 1991.
3953
3954 [RFC1738] Berners-Lee, T., Masinter, L., and M. McCahill, "Uniform
3955 Resource Locators (URL)", RFC 1738, December 1994.
3956
3957 [RFC2397] Masinter, L., "The "data" URL scheme", RFC 2397,
3958 August 1998.
3959
3960 [RFC2425] Howes, T., Smith, M., and F. Dawson, "A MIME Content-Type
3961 for Directory Information", RFC 2425, September 1998.
3962
3963 [RFC2426] Dawson, F. and T. Howes, "vCard MIME Directory Profile",
3964 RFC 2426, September 1998.
3965
3966 [RFC2616] Fielding, R., Gettys, J., Mogul, J., Frystyk, H.,
3967 Masinter, L., Leach, P., and T. Berners-Lee, "Hypertext
3968 Transfer Protocol -- HTTP/1.1", RFC 2616, June 1999.
3969
3970 [RFC3282] Alvestrand, H., "Content Language Headers", RFC 3282,
3971 May 2002.
3972
3973
3974
3975
3976
3977
3978Perreault Standards Track [Page 71]
3979
3980RFC 6350 vCard August 2011
3981
3982
3983 [RFC3406] Daigle, L., van Gulik, D., Iannella, R., and P. Faltstrom,
3984 "Uniform Resource Names (URN) Namespace Definition
3985 Mechanisms", BCP 66, RFC 3406, October 2002.
3986
3987 [RFC3536] Hoffman, P., "Terminology Used in Internationalization in
3988 the IETF", RFC 3536, May 2003.
3989
3990 [RFC4770] Jennings, C. and J. Reschke, Ed., "vCard Extensions for
3991 Instant Messaging (IM)", RFC 4770, January 2007.
3992
3993 [RFC4880] Callas, J., Donnerhacke, L., Finney, H., Shaw, D., and R.
3994 Thayer, "OpenPGP Message Format", RFC 4880, November 2007.
3995
3996 [RFC5335bis]
3997 Yang, A. and S. Steele, "Internationalized Email Headers",
3998 Work in Progress, July 2011.
3999
4000 [RFC5751] Ramsdell, B. and S. Turner, "Secure/Multipurpose Internet
4001 Mail Extensions (S/MIME) Version 3.2 Message
4002 Specification", RFC 5751, January 2010.
4003
4004 [RFC6068] Duerst, M., Masinter, L., and J. Zawinski, "The 'mailto'
4005 URI Scheme", RFC 6068, October 2010.
4006
4007 [TZ-DB] Olson, A., "Time zone code and data",
4008 <ftp://elsie.nci.nih.gov/pub/>.
4009
4010 [vCard21] Internet Mail Consortium, "vCard - The Electronic Business
4011 Card Version 2.1", September 1996.
4012
4013
4014
4015
4016
4017
4018
4019
4020
4021
4022
4023
4024
4025
4026
4027
4028
4029
4030
4031
4032
4033
4034Perreault Standards Track [Page 72]
4035
4036RFC 6350 vCard August 2011
4037
4038
4039Appendix A. Differences from RFCs 2425 and 2426
4040
4041 This appendix contains a high-level overview of the major changes
4042 that have been made in the vCard specification from RFCs 2425 and
4043 2426. It is incomplete, as it only lists the most important changes.
4044
4045A.1. New Structure
4046
4047 o [RFC2425] and [RFC2426] have been merged.
4048
4049 o vCard is now not only a MIME type but a stand-alone format.
4050
4051 o A proper MIME type registration form has been included.
4052
4053 o UTF-8 is now the only possible character set.
4054
4055 o New vCard elements can be registered from IANA.
4056
4057A.2. Removed Features
4058
4059 o The CONTEXT and CHARSET parameters are no more.
4060
4061 o The NAME, MAILER, LABEL, and CLASS properties are no more.
4062
4063 o The "intl", "dom", "postal", and "parcel" TYPE parameter values
4064 for the ADR property have been removed.
4065
4066 o In-line vCards (such as the value of the AGENT property) are no
4067 longer supported.
4068
4069A.3. New Properties and Parameters
4070
4071 o The KIND, GENDER, LANG, ANNIVERSARY, XML, and CLIENTPIDMAP
4072 properties have been added.
4073
4074 o [RFC2739], which defines the FBURL, CALADRURI, CAPURI, and CALURI
4075 properties, has been merged in.
4076
4077 o [RFC4770], which defines the IMPP property, has been merged in.
4078
4079 o The "work" and "home" TYPE parameter values are now applicable to
4080 many more properties.
4081
4082 o The "pref" value of the TYPE parameter is now a parameter of its
4083 own, with a positive integer value indicating the level of
4084 preference.
4085
4086 o The ALTID and PID parameters have been added.
4087
4088
4089
4090Perreault Standards Track [Page 73]
4091
4092RFC 6350 vCard August 2011
4093
4094
4095 o The MEDIATYPE parameter has been added and replaces the TYPE
4096 parameter when it was used for indicating the media type of the
4097 property's content.
4098
4099Author's Address
4100
4101 Simon Perreault
4102 Viagenie
4103 2875 Laurier, suite D2-630
4104 Quebec, QC G1V 2M2
4105 Canada
4106
4107 Phone: +1 418 656 9254
4108 EMail: simon.perreault@viagenie.ca
4109 URI: http://www.viagenie.ca
4110
4111
4112
4113
4114
4115
4116
4117
4118
4119
4120
4121
4122
4123
4124
4125
4126
4127
4128
4129
4130
4131
4132
4133
4134
4135
4136
4137
4138
4139
4140
4141
4142
4143
4144
4145
4146Perreault Standards Track [Page 74]
4147
4148