draft-ietf-vcarddav-vcardrev-14.txt   draft-ietf-vcarddav-vcardrev-15.txt 
Network Working Group S. Perreault Network Working Group S. Perreault
Internet-Draft Viagenie Internet-Draft Viagenie
Obsoletes: 2425, 2426, 4770 P. Resnick Obsoletes: 2425, 2426, 4770 P. Resnick
(if approved) QUALCOMM Incorporated (if approved) QUALCOMM Incorporated
Updates: 2739 (if approved) December 9, 2010 Updates: 2739 (if approved) December 9, 2010
Intended status: Standards Track Intended status: Standards Track
Expires: June 12, 2011 Expires: June 12, 2011
vCard Format Specification vCard Format Specification
draft-ietf-vcarddav-vcardrev-14 draft-ietf-vcarddav-vcardrev-15
Abstract Abstract
This document defines the vCard data format for representing and This document defines the vCard data format for representing and
exchanging a variety of information about individuals and other exchanging a variety of information about individuals and other
entities (e.g., formatted and structured name and delivery addresses, entities (e.g., formatted and structured name and delivery addresses,
email address, multiple telephone numbers, photograph, logo, audio email address, multiple telephone numbers, photograph, logo, audio
clips, etc.). clips, etc.).
Status of This Memo Status of This Memo
skipping to change at page 2, line 48 skipping to change at page 2, line 48
4.2. URI . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 4.2. URI . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
4.3. DATE, TIME, DATE-TIME, DATE-AND-OR-TIME, and TIMESTAMP . . 13 4.3. DATE, TIME, DATE-TIME, DATE-AND-OR-TIME, and TIMESTAMP . . 13
4.3.1. DATE . . . . . . . . . . . . . . . . . . . . . . . . . 13 4.3.1. DATE . . . . . . . . . . . . . . . . . . . . . . . . . 13
4.3.2. TIME . . . . . . . . . . . . . . . . . . . . . . . . . 13 4.3.2. TIME . . . . . . . . . . . . . . . . . . . . . . . . . 13
4.3.3. DATE-TIME . . . . . . . . . . . . . . . . . . . . . . 14 4.3.3. DATE-TIME . . . . . . . . . . . . . . . . . . . . . . 14
4.3.4. DATE-AND-OR-TIME . . . . . . . . . . . . . . . . . . . 14 4.3.4. DATE-AND-OR-TIME . . . . . . . . . . . . . . . . . . . 14
4.3.5. TIMESTAMP . . . . . . . . . . . . . . . . . . . . . . 15 4.3.5. TIMESTAMP . . . . . . . . . . . . . . . . . . . . . . 15
4.4. BOOLEAN . . . . . . . . . . . . . . . . . . . . . . . . . 15 4.4. BOOLEAN . . . . . . . . . . . . . . . . . . . . . . . . . 15
4.5. INTEGER . . . . . . . . . . . . . . . . . . . . . . . . . 15 4.5. INTEGER . . . . . . . . . . . . . . . . . . . . . . . . . 15
4.6. FLOAT . . . . . . . . . . . . . . . . . . . . . . . . . . 16 4.6. FLOAT . . . . . . . . . . . . . . . . . . . . . . . . . . 16
4.7. BINARY . . . . . . . . . . . . . . . . . . . . . . . . . . 16 4.7. LANGUAGE-TAG . . . . . . . . . . . . . . . . . . . . . . . 16
4.8. LANGUAGE-TAG . . . . . . . . . . . . . . . . . . . . . . . 16
5. Property Parameters . . . . . . . . . . . . . . . . . . . . . 16 5. Property Parameters . . . . . . . . . . . . . . . . . . . . . 16
5.1. LANGUAGE . . . . . . . . . . . . . . . . . . . . . . . . . 17 5.1. LANGUAGE . . . . . . . . . . . . . . . . . . . . . . . . . 16
5.2. ENCODING . . . . . . . . . . . . . . . . . . . . . . . . . 17 5.2. VALUE . . . . . . . . . . . . . . . . . . . . . . . . . . 17
5.3. VALUE . . . . . . . . . . . . . . . . . . . . . . . . . . 18 5.3. PREF . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
5.4. PREF . . . . . . . . . . . . . . . . . . . . . . . . . . . 18 5.4. ALTID . . . . . . . . . . . . . . . . . . . . . . . . . . 18
5.5. ALTID . . . . . . . . . . . . . . . . . . . . . . . . . . 19 5.5. PID . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
5.6. PID . . . . . . . . . . . . . . . . . . . . . . . . . . . 20 5.6. TYPE . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
5.7. TYPE . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 5.7. CALSCALE . . . . . . . . . . . . . . . . . . . . . . . . . 21
5.8. CALSCALE . . . . . . . . . . . . . . . . . . . . . . . . . 21 5.8. SORT-AS . . . . . . . . . . . . . . . . . . . . . . . . . 21
5.9. SORT-AS . . . . . . . . . . . . . . . . . . . . . . . . . 22 5.9. GEO . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
5.10. GEO . . . . . . . . . . . . . . . . . . . . . . . . . . . 23 5.10. TZ . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
5.11. TZ . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23 6. vCard Properties . . . . . . . . . . . . . . . . . . . . . . . 23
5.12. VERSION . . . . . . . . . . . . . . . . . . . . . . . . . 23 6.1. General Properties . . . . . . . . . . . . . . . . . . . . 23
5.13. FMTTYPE . . . . . . . . . . . . . . . . . . . . . . . . . 24 6.1.1. BEGIN . . . . . . . . . . . . . . . . . . . . . . . . 23
6. vCard Properties . . . . . . . . . . . . . . . . . . . . . . . 24 6.1.2. END . . . . . . . . . . . . . . . . . . . . . . . . . 24
6.1. General Properties . . . . . . . . . . . . . . . . . . . . 24 6.1.3. SOURCE . . . . . . . . . . . . . . . . . . . . . . . . 24
6.1.1. BEGIN . . . . . . . . . . . . . . . . . . . . . . . . 24 6.1.4. KIND . . . . . . . . . . . . . . . . . . . . . . . . . 25
6.1.2. END . . . . . . . . . . . . . . . . . . . . . . . . . 25 6.1.5. XML . . . . . . . . . . . . . . . . . . . . . . . . . 26
6.1.3. SOURCE . . . . . . . . . . . . . . . . . . . . . . . . 25 6.2. Identification Properties . . . . . . . . . . . . . . . . 27
6.1.4. KIND . . . . . . . . . . . . . . . . . . . . . . . . . 26 6.2.1. FN . . . . . . . . . . . . . . . . . . . . . . . . . . 27
6.1.5. XML . . . . . . . . . . . . . . . . . . . . . . . . . 27 6.2.2. N . . . . . . . . . . . . . . . . . . . . . . . . . . 27
6.2. Identification Properties . . . . . . . . . . . . . . . . 28 6.2.3. NICKNAME . . . . . . . . . . . . . . . . . . . . . . . 28
6.2.1. FN . . . . . . . . . . . . . . . . . . . . . . . . . . 28 6.2.4. PHOTO . . . . . . . . . . . . . . . . . . . . . . . . 29
6.2.2. N . . . . . . . . . . . . . . . . . . . . . . . . . . 29 6.2.5. BDAY . . . . . . . . . . . . . . . . . . . . . . . . . 29
6.2.3. NICKNAME . . . . . . . . . . . . . . . . . . . . . . . 30 6.2.6. ANNIVERSARY . . . . . . . . . . . . . . . . . . . . . 30
6.2.4. PHOTO . . . . . . . . . . . . . . . . . . . . . . . . 30 6.2.7. GENDER . . . . . . . . . . . . . . . . . . . . . . . . 31
6.2.5. BDAY . . . . . . . . . . . . . . . . . . . . . . . . . 31 6.3. Delivery Addressing Properties . . . . . . . . . . . . . . 31
6.2.6. DDAY . . . . . . . . . . . . . . . . . . . . . . . . . 32 6.3.1. ADR . . . . . . . . . . . . . . . . . . . . . . . . . 31
6.2.7. BIRTH . . . . . . . . . . . . . . . . . . . . . . . . 32 6.4. Communications Properties . . . . . . . . . . . . . . . . 33
6.2.8. DEATH . . . . . . . . . . . . . . . . . . . . . . . . 33 6.4.1. TEL . . . . . . . . . . . . . . . . . . . . . . . . . 33
6.2.9. ANNIVERSARY . . . . . . . . . . . . . . . . . . . . . 34 6.4.2. EMAIL . . . . . . . . . . . . . . . . . . . . . . . . 34
6.2.10. SEX . . . . . . . . . . . . . . . . . . . . . . . . . 34 6.4.3. IMPP . . . . . . . . . . . . . . . . . . . . . . . . . 35
6.3. Delivery Addressing Properties . . . . . . . . . . . . . . 35 6.4.4. LANG . . . . . . . . . . . . . . . . . . . . . . . . . 35
6.3.1. ADR . . . . . . . . . . . . . . . . . . . . . . . . . 35 6.5. Geographical Properties . . . . . . . . . . . . . . . . . 36
6.3.2. LABEL . . . . . . . . . . . . . . . . . . . . . . . . 36 6.5.1. TZ . . . . . . . . . . . . . . . . . . . . . . . . . . 36
6.4. Communications Properties . . . . . . . . . . . . . . . . 37 6.5.2. GEO . . . . . . . . . . . . . . . . . . . . . . . . . 37
6.4.1. TEL . . . . . . . . . . . . . . . . . . . . . . . . . 37 6.6. Organizational Properties . . . . . . . . . . . . . . . . 37
6.4.2. EMAIL . . . . . . . . . . . . . . . . . . . . . . . . 38 6.6.1. TITLE . . . . . . . . . . . . . . . . . . . . . . . . 37
6.4.3. IMPP . . . . . . . . . . . . . . . . . . . . . . . . . 39 6.6.2. ROLE . . . . . . . . . . . . . . . . . . . . . . . . . 38
6.4.4. LANG . . . . . . . . . . . . . . . . . . . . . . . . . 39 6.6.3. LOGO . . . . . . . . . . . . . . . . . . . . . . . . . 38
6.5. Geographical Properties . . . . . . . . . . . . . . . . . 40 6.6.4. ORG . . . . . . . . . . . . . . . . . . . . . . . . . 39
6.5.1. TZ . . . . . . . . . . . . . . . . . . . . . . . . . . 40 6.6.5. MEMBER . . . . . . . . . . . . . . . . . . . . . . . . 39
6.5.2. GEO . . . . . . . . . . . . . . . . . . . . . . . . . 41 6.6.6. RELATED . . . . . . . . . . . . . . . . . . . . . . . 40
6.6. Organizational Properties . . . . . . . . . . . . . . . . 41 6.7. Explanatory Properties . . . . . . . . . . . . . . . . . . 41
6.6.1. TITLE . . . . . . . . . . . . . . . . . . . . . . . . 41 6.7.1. CATEGORIES . . . . . . . . . . . . . . . . . . . . . . 42
6.6.2. ROLE . . . . . . . . . . . . . . . . . . . . . . . . . 42 6.7.2. NOTE . . . . . . . . . . . . . . . . . . . . . . . . . 42
6.6.3. LOGO . . . . . . . . . . . . . . . . . . . . . . . . . 42 6.7.3. PRODID . . . . . . . . . . . . . . . . . . . . . . . . 43
6.6.4. ORG . . . . . . . . . . . . . . . . . . . . . . . . . 43 6.7.4. REV . . . . . . . . . . . . . . . . . . . . . . . . . 43
6.6.5. MEMBER . . . . . . . . . . . . . . . . . . . . . . . . 44 6.7.5. SOUND . . . . . . . . . . . . . . . . . . . . . . . . 43
6.6.6. RELATED . . . . . . . . . . . . . . . . . . . . . . . 45 6.7.6. UID . . . . . . . . . . . . . . . . . . . . . . . . . 44
6.7. Explanatory Properties . . . . . . . . . . . . . . . . . . 47 6.7.7. CLIENTPIDMAP . . . . . . . . . . . . . . . . . . . . . 45
6.7.1. CATEGORIES . . . . . . . . . . . . . . . . . . . . . . 47 6.7.8. URL . . . . . . . . . . . . . . . . . . . . . . . . . 45
6.7.2. NOTE . . . . . . . . . . . . . . . . . . . . . . . . . 47 6.7.9. VERSION . . . . . . . . . . . . . . . . . . . . . . . 46
6.7.3. PRODID . . . . . . . . . . . . . . . . . . . . . . . . 48 6.8. Security Properties . . . . . . . . . . . . . . . . . . . 46
6.7.4. REV . . . . . . . . . . . . . . . . . . . . . . . . . 48 6.8.1. KEY . . . . . . . . . . . . . . . . . . . . . . . . . 46
6.7.5. SOUND . . . . . . . . . . . . . . . . . . . . . . . . 49 6.9. Calendar Properties . . . . . . . . . . . . . . . . . . . 47
6.7.6. UID . . . . . . . . . . . . . . . . . . . . . . . . . 50 6.9.1. FBURL . . . . . . . . . . . . . . . . . . . . . . . . 47
6.7.7. CLIENTPIDMAP . . . . . . . . . . . . . . . . . . . . . 50 6.9.2. CALADRURI . . . . . . . . . . . . . . . . . . . . . . 48
6.7.8. URL . . . . . . . . . . . . . . . . . . . . . . . . . 51 6.9.3. CALURI . . . . . . . . . . . . . . . . . . . . . . . . 48
6.7.9. VERSION . . . . . . . . . . . . . . . . . . . . . . . 51 6.10. Extended Properties and Parameters . . . . . . . . . . . . 49
6.8. Security Properties . . . . . . . . . . . . . . . . . . . 52 7. Synchronization . . . . . . . . . . . . . . . . . . . . . . . 49
6.8.1. CLASS . . . . . . . . . . . . . . . . . . . . . . . . 52 7.1. Mechanisms . . . . . . . . . . . . . . . . . . . . . . . . 49
6.8.2. KEY . . . . . . . . . . . . . . . . . . . . . . . . . 53 7.1.1. Matching vCard Instances . . . . . . . . . . . . . . . 50
6.9. Calendar Properties . . . . . . . . . . . . . . . . . . . 54 7.1.2. Matching Property Instances . . . . . . . . . . . . . 50
6.9.1. FBURL . . . . . . . . . . . . . . . . . . . . . . . . 54 7.1.3. PID Matching . . . . . . . . . . . . . . . . . . . . . 50
6.9.2. CALADRURI . . . . . . . . . . . . . . . . . . . . . . 54 7.2. Example . . . . . . . . . . . . . . . . . . . . . . . . . 51
6.9.3. CALURI . . . . . . . . . . . . . . . . . . . . . . . . 55 7.2.1. Creation . . . . . . . . . . . . . . . . . . . . . . . 51
6.10. Extended Properties and Parameters . . . . . . . . . . . . 56 7.2.2. Initial Sharing . . . . . . . . . . . . . . . . . . . 51
7. Synchronization . . . . . . . . . . . . . . . . . . . . . . . 56 7.2.3. Adding and Sharing a Property . . . . . . . . . . . . 52
7.1. Mechanisms . . . . . . . . . . . . . . . . . . . . . . . . 56 7.2.4. Simultaneous Editing . . . . . . . . . . . . . . . . . 52
7.1.1. Matching vCard Instances . . . . . . . . . . . . . . . 56 7.2.5. Global Context Simplification . . . . . . . . . . . . 54
7.1.2. Matching Property Instances . . . . . . . . . . . . . 56 8. Example: Authors' vCards . . . . . . . . . . . . . . . . . . . 55
7.1.3. PID Matching . . . . . . . . . . . . . . . . . . . . . 57 9. Security Considerations . . . . . . . . . . . . . . . . . . . 55
7.2. Example . . . . . . . . . . . . . . . . . . . . . . . . . 57 10. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 56
7.2.1. Creation . . . . . . . . . . . . . . . . . . . . . . . 57 10.1. MIME Type Registration . . . . . . . . . . . . . . . . . . 56
7.2.2. Initial Sharing . . . . . . . . . . . . . . . . . . . 58 10.2. Registering New vCard Elements . . . . . . . . . . . . . . 57
7.2.3. Adding and Sharing a Property . . . . . . . . . . . . 58 10.2.1. Registration Procedure . . . . . . . . . . . . . . . . 57
7.2.4. Simultaneous Editing . . . . . . . . . . . . . . . . . 59 10.2.2. Vendor Namespace . . . . . . . . . . . . . . . . . . . 58
7.2.5. Global Context Simplification . . . . . . . . . . . . 61 10.2.3. Registration Template for Properties . . . . . . . . . 59
8. Example: Authors' vCards . . . . . . . . . . . . . . . . . . . 62 10.2.4. Registration Template for Parameters . . . . . . . . . 59
9. Security Considerations . . . . . . . . . . . . . . . . . . . 62 10.2.5. Registration Template for Value Data Types . . . . . . 60
10. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 63 10.2.6. Registration Template for Values . . . . . . . . . . . 60
10.1. MIME Type Registration . . . . . . . . . . . . . . . . . . 63 10.3. Initial vCard Elements Registries . . . . . . . . . . . . 61
10.2. Registering New vCard Elements . . . . . . . . . . . . . . 65 10.3.1. Properties Registry . . . . . . . . . . . . . . . . . 61
10.2.1. Registration Procedure . . . . . . . . . . . . . . . . 65 10.3.2. Parameters Registry . . . . . . . . . . . . . . . . . 62
10.2.2. Vendor Namespace . . . . . . . . . . . . . . . . . . . 65 10.3.3. Value Data Types Registry . . . . . . . . . . . . . . 63
10.2.3. Registration Template for Properties . . . . . . . . . 66 10.3.4. Values Registries . . . . . . . . . . . . . . . . . . 63
10.2.4. Registration Template for Parameters . . . . . . . . . 66 11. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . . 65
10.2.5. Registration Template for Value Data Types . . . . . . 67 12. References . . . . . . . . . . . . . . . . . . . . . . . . . . 65
10.2.6. Registration Template for Values . . . . . . . . . . . 67 12.1. Normative References . . . . . . . . . . . . . . . . . . . 65
10.3. Initial vCard Elements Registries . . . . . . . . . . . . 68 12.2. Informative References . . . . . . . . . . . . . . . . . . 68
10.3.1. Properties Registry . . . . . . . . . . . . . . . . . 68 Appendix A. Differences from RFCs 2425 and 2426 . . . . . . . . . 69
10.3.2. Parameters Registry . . . . . . . . . . . . . . . . . 70 A.1. New Structure . . . . . . . . . . . . . . . . . . . . . . 69
10.3.3. Value Data Types Registry . . . . . . . . . . . . . . 70 A.2. Removed Features . . . . . . . . . . . . . . . . . . . . . 69
10.3.4. Values Registries . . . . . . . . . . . . . . . . . . 71 A.3. New Properties and Parameters . . . . . . . . . . . . . . 69
11. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . . 73 A.4. Other Changes . . . . . . . . . . . . . . . . . . . . . . 70
12. References . . . . . . . . . . . . . . . . . . . . . . . . . . 74
12.1. Normative References . . . . . . . . . . . . . . . . . . . 74
12.2. Informative References . . . . . . . . . . . . . . . . . . 76
Appendix A. Differences from RFCs 2425 and 2426 . . . . . . . . . 77
A.1. New Structure . . . . . . . . . . . . . . . . . . . . . . 77
A.2. Removed Features . . . . . . . . . . . . . . . . . . . . . 77
A.3. New Properties and Parameters . . . . . . . . . . . . . . 78
A.4. Other Changes . . . . . . . . . . . . . . . . . . . . . . 78
Appendix B. Change Log (to be removed by RFC Editor prior to Appendix B. Change Log (to be removed by RFC Editor prior to
publication) . . . . . . . . . . . . . . . . . . . . 78 publication) . . . . . . . . . . . . . . . . . . . . 70
B.1. Changes in -14 . . . . . . . . . . . . . . . . . . . . . . 78 B.1. Changes in -15 . . . . . . . . . . . . . . . . . . . . . . 70
B.2. Changes in -13 . . . . . . . . . . . . . . . . . . . . . . 79 B.2. Changes in -14 . . . . . . . . . . . . . . . . . . . . . . 71
B.3. Changes in -12 . . . . . . . . . . . . . . . . . . . . . . 80 B.3. Changes in -13 . . . . . . . . . . . . . . . . . . . . . . 71
B.4. Changes in -11 . . . . . . . . . . . . . . . . . . . . . . 81 B.4. Changes in -12 . . . . . . . . . . . . . . . . . . . . . . 72
B.5. Changes in -10 . . . . . . . . . . . . . . . . . . . . . . 81 B.5. Changes in -11 . . . . . . . . . . . . . . . . . . . . . . 73
B.6. Changes in -09 . . . . . . . . . . . . . . . . . . . . . . 82 B.6. Changes in -10 . . . . . . . . . . . . . . . . . . . . . . 73
B.7. Changes in -08 . . . . . . . . . . . . . . . . . . . . . . 82 B.7. Changes in -09 . . . . . . . . . . . . . . . . . . . . . . 74
B.8. Changes in -07 . . . . . . . . . . . . . . . . . . . . . . 82 B.8. Changes in -08 . . . . . . . . . . . . . . . . . . . . . . 74
B.9. Changes in -06 . . . . . . . . . . . . . . . . . . . . . . 83 B.9. Changes in -07 . . . . . . . . . . . . . . . . . . . . . . 75
B.10. Changes in -05 . . . . . . . . . . . . . . . . . . . . . . 84 B.10. Changes in -06 . . . . . . . . . . . . . . . . . . . . . . 75
B.11. Changes in -04 . . . . . . . . . . . . . . . . . . . . . . 84 B.11. Changes in -05 . . . . . . . . . . . . . . . . . . . . . . 76
B.12. Changes in -03 . . . . . . . . . . . . . . . . . . . . . . 84 B.12. Changes in -04 . . . . . . . . . . . . . . . . . . . . . . 76
B.13. Changes in -02 . . . . . . . . . . . . . . . . . . . . . . 85 B.13. Changes in -03 . . . . . . . . . . . . . . . . . . . . . . 77
B.14. Changes in -01 . . . . . . . . . . . . . . . . . . . . . . 85 B.14. Changes in -02 . . . . . . . . . . . . . . . . . . . . . . 77
B.15. Changes in -00 . . . . . . . . . . . . . . . . . . . . . . 86 B.15. Changes in -01 . . . . . . . . . . . . . . . . . . . . . . 77
B.16. Changes in -00 . . . . . . . . . . . . . . . . . . . . . . 78
1. Introduction 1. Introduction
Electronic address books have become ubiquitous. Their increased Electronic address books have become ubiquitous. Their increased
presence on portable, connected devices as well as the diversity of presence on portable, connected devices as well as the diversity of
platforms exchanging contact data call for a standard. This memo platforms exchanging contact data call for a standard. This memo
defines the vCard format, which allows the capture and exchange of defines the vCard format, which allows the capture and exchange of
information normally stored within an address book or directory information normally stored within an address book or directory
application. application.
skipping to change at page 8, line 5 skipping to change at page 8, line 5
contentline = [group "."] name *(";" param) ":" value CRLF contentline = [group "."] name *(";" param) ":" value CRLF
; When parsing a content line, folded lines must first ; When parsing a content line, folded lines must first
; be unfolded according to the unfolding procedure ; be unfolded according to the unfolding procedure
; described above. ; described above.
; When generating a content line, lines longer than 75 ; When generating a content line, lines longer than 75
; characters SHOULD be folded according to the folding ; characters SHOULD be folded according to the folding
; procedure described above. ; procedure described above.
group = 1*(ALPHA / DIGIT / "-") group = 1*(ALPHA / DIGIT / "-")
name = "SOURCE" / "KIND" / "FN" / "N" / "NICKNAME" name = "SOURCE" / "KIND" / "FN" / "N" / "NICKNAME"
/ "PHOTO" / "BDAY" / "DDAY" / "BIRTH" / "DEATH" / "PHOTO" / "BDAY" / "ANNIVERSARY" / "GENDER" / "ADR" / / "TEL"
/ "ANNIVERSARY" / "SEX" / "ADR" / "LABEL" / "TEL" / "EMAIL" / "EMAIL" / "IMPP" / "LANG" / "TZ" / "GEO" / "TITLE" / "ROLE"
/ "IMPP" / "LANG" / "TZ" / "GEO" / "TITLE" / "ROLE" / "LOGO" / "LOGO" / "ORG" / "MEMBER" / "RELATED" / "CATEGORIES"
/ "ORG" / "MEMBER" / "RELATED" / "CATEGORIES" / "NOTE" / "NOTE" / "PRODID" / "REV" / "SOUND" / "UID" / "CLIENTPIDMAP"
/ "PRODID" / "REV" / "SOUND" / "UID" / "CLIENTPIDMAP" / "URL" / "URL" / "KEY" / "FBURL" / "CALADRURI" / "CALURI" / "XML"
/ "CLASS" / "KEY" / "FBURL" / "CALADRURI" / "CALURI" / "XML"
/ iana-token / x-name / iana-token / x-name
; Parsing of the param and value is based on the "name" as ; Parsing of the param and value is based on the "name" as
; defined in ABNF sections below. ; defined in ABNF sections below.
; Group and name are case-insensitive. ; Group and name are case-insensitive.
iana-token = 1*(ALPHA / DIGIT / "-") iana-token = 1*(ALPHA / DIGIT / "-")
; identifier registered with IANA ; identifier registered with IANA
x-name = "x-" 1*(ALPHA / DIGIT / "-") x-name = "x-" 1*(ALPHA / DIGIT / "-")
; Names that begin with "x-" or "X-" are ; Names that begin with "x-" or "X-" are
; reserved for experimental use, not intended for released ; reserved for experimental use, not intended for released
; products, or for use in bilateral agreements. ; products, or for use in bilateral agreements.
param = language-param / encoding-param / value-param / pref-param param = language-param / value-param / pref-param / pid-param
/ pid-param / type-param / geo-param / tz-param / / type-param / geo-param / tz-param / sort-as-param
/ sort-as-param / calscale-param / version-param / calscale-param / version-param / any-param
/ fmttype-param / any-param
; Allowed parameters depend on property name. ; Allowed parameters depend on property name.
param-value = *SAFE-CHAR / DQUOTE *QSAFE-CHAR DQUOTE param-value = *SAFE-CHAR / DQUOTE *QSAFE-CHAR DQUOTE
any-param = (iana-token / x-name) "=" param-value *("," param-value) any-param = (iana-token / x-name) "=" param-value *("," param-value)
NON-ASCII = %x80-FF NON-ASCII = %x80-FF
; Use is restricted by UTF-8 ; Use is restricted by UTF-8
QSAFE-CHAR = WSP / %x21 / %x23-7E / NON-ASCII QSAFE-CHAR = WSP / %x21 / %x23-7E / NON-ASCII
skipping to change at page 9, line 9 skipping to change at page 9, line 8
the previous line, as described above. The white space character and the previous line, as described above. The white space character and
immediately preceeding CRLF should be discarded when reconstructing immediately preceeding CRLF should be discarded when reconstructing
the original line. Note that this line-folding convention differs the original line. Note that this line-folding convention differs
from that found in [RFC5322], in that the sequence <CRLF><WSP> found from that found in [RFC5322], in that the sequence <CRLF><WSP> found
anywhere in the content indicates a continued line and should be anywhere in the content indicates a continued line and should be
removed. removed.
Property names and parameter names are case insensitive (e.g., the Property names and parameter names are case insensitive (e.g., the
property name "fn" is the same as "FN" and "Fn"). Parameter values property name "fn" is the same as "FN" and "Fn"). Parameter values
MAY be case sensitive or case insensitive, depending on their MAY be case sensitive or case insensitive, depending on their
definition. definition. Based on experience with vCard 3 interoperability, it is
RECOMMENDED that property and parameter names be upper-case on
output.
The group construct is used to group related properties together. The group construct is used to group related properties together.
The group name is a syntactic convention used to indicate that all The group name is a syntactic convention used to indicate that all
property names prefaced with the same group name SHOULD be grouped property names prefaced with the same group name SHOULD be grouped
together when displayed by an application. It has no other together when displayed by an application. It has no other
significance. Implementations that do not understand or support significance. Implementations that do not understand or support
grouping MAY simply strip off any text before a "." to the left of grouping MAY simply strip off any text before a "." to the left of
the type name and present the types and values as normal. the type name and present the types and values as normal.
Properties defined in a vCard instance may have multiple values Properties defined in a vCard instance may have multiple values
skipping to change at page 10, line 32 skipping to change at page 10, line 32
value = text value = text
/ text-list / text-list
/ date-list / date-list
/ time-list / time-list
/ date-time-list / date-time-list
/ date-and-or-time-list / date-and-or-time-list
/ timestamp-list / timestamp-list
/ boolean / boolean
/ integer-list / integer-list
/ float-list / float-list
/ binary
/ URI ; from Section 3 of [RFC3986] / URI ; from Section 3 of [RFC3986]
/ iana-valuespec / iana-valuespec
; Actual value type depends on property name and VALUE parameter. ; Actual value type depends on property name and VALUE parameter.
text = *VALUE-CHAR text = *VALUE-CHAR
text-list = *TEXT-LIST-CHAR *("," *TEXT-LIST-CHAR) text-list = *TEXT-LIST-CHAR *("," *TEXT-LIST-CHAR)
TEXT-LIST-CHAR = "\\" / "\," / "\n" TEXT-LIST-CHAR = "\\" / "\," / "\n"
/ <any VALUE-CHAR except , or \> / <any VALUE-CHAR except , or \>
skipping to change at page 11, line 10 skipping to change at page 11, line 10
date-and-or-time-list = date-and-or-time *("," date-and-or-time) date-and-or-time-list = date-and-or-time *("," date-and-or-time)
timestamp-list = timestamp *("," timestamp) timestamp-list = timestamp *("," timestamp)
integer-list = integer *("," integer) integer-list = integer *("," integer)
float-list = float *("," float) float-list = float *("," float)
boolean = "TRUE" / "FALSE" boolean = "TRUE" / "FALSE"
integer = [sign] 1*DIGIT integer = [sign] 1*DIGIT
float = [sign] 1*DIGIT ["." 1*DIGIT] float = [sign] 1*DIGIT ["." 1*DIGIT]
sign = "+" / "-" sign = "+" / "-"
binary = <A binary string encoded as per the ENCODING parameter>
year = 4DIGIT ; 0000-9999 year = 4DIGIT ; 0000-9999
month = 2DIGIT ; 01-12 month = 2DIGIT ; 01-12
day = 2DIGIT ; 01-28/29/30/31 depending on month and leap year day = 2DIGIT ; 01-28/29/30/31 depending on month and leap year
hour = 2DIGIT ; 00-23 hour = 2DIGIT ; 00-23
minute = 2DIGIT ; 00-59 minute = 2DIGIT ; 00-59
second = 2DIGIT ; 00-58/59/60 depending on leap second second = 2DIGIT ; 00-58/59/60 depending on leap second
zone = utc-designator / utc-offset zone = utc-designator / utc-offset
utc-designator = %d90 ; uppercase "Z" utc-designator = %d90 ; uppercase "Z"
date = year [month day] date = year [month day]
skipping to change at page 16, line 26 skipping to change at page 16, line 26
Note: Scientific notation is disallowed. Implementors wishing to Note: Scientific notation is disallowed. Implementors wishing to
use their favorite language's %f formatting should be careful. use their favorite language's %f formatting should be careful.
Examples: Examples:
20.30 20.30
1000000.0000001 1000000.0000001
1.333,3.14 1.333,3.14
4.7. BINARY 4.7. LANGUAGE-TAG
"binary": The "binary" value type specifies that the property value
is inline, encoded binary data. This value type can be specified in
the PHOTO, LOGO, SOUND, and KEY types.
If inline encoded binary data is specified, the ENCODING type
parameter MUST be used to specify the encoding format. The binary
data MUST be encoded using the "B" encoding format. Long lines of
encoded binary data SHOULD BE folded to 75 characters using the
folding method defined in Section 3.1.
4.8. LANGUAGE-TAG
"language-tag": A single language tag, as defined in [RFC5646]. "language-tag": A single language tag, as defined in [RFC5646].
5. Property Parameters 5. Property Parameters
A property can have attributes associated with it. These "property A property can have attributes associated with it. These "property
parameters" contain meta-information about the property or the parameters" contain meta-information about the property or the
property value. In some cases the property parameter can be multi- property value. In some cases the property parameter can be multi-
valued in which case the property parameter value elements are valued in which case the property parameter value elements are
separated by a COMMA (US-ASCII decimal 44). separated by a COMMA (US-ASCII decimal 44).
skipping to change at page 17, line 29 skipping to change at page 17, line 17
Examples: Examples:
ROLE;LANGUAGE=tr:hoca ROLE;LANGUAGE=tr:hoca
ABNF: ABNF:
language-param = "LANGUAGE=" Language-Tag language-param = "LANGUAGE=" Language-Tag
; Language-Tag is defined in section 2.1 of RFC 5646 ; Language-Tag is defined in section 2.1 of RFC 5646
5.2. ENCODING 5.2. VALUE
The ENCODING property parameter is used to specify an alternate
encoding for a value. If the value contains a CRLF, it must be
encoded, since CRLF is used to separate lines in the content-type
itself. Currently, only the "b" encoding is supported.
The "b" encoding ([RFC2047], section 4.1) can also be useful for
binary values that are mixed with other text information in the body
part (e.g., a certificate). Using a per-value "b" encoding in this
case leaves the other information in a more readable form. The
encoded base 64 value can be split across multiple physical lines by
using the line folding technique described above.
A transport encoding (e.g. using the MIME Content-Transfer-Encoding
header) may be applied to the whole vCard. This is independent of
any ENCODING used for property values.
Note that this parameter's value is case-insensitive. Either "b" or
"B" MAY be used.
ABNF:
encoding-param = "ENCODING=" encoding-type
encoding-type = "b" ; from [RFC2047]
/ iana-token ; registered as in section 12
5.3. VALUE
The VALUE parameter is optional, and is used to identify the value The VALUE parameter is optional, and is used to identify the value
type (data type) and format of the value. The use of these type (data type) and format of the value. The use of these
predefined formats is encouraged even if the value parameter is not predefined formats is encouraged even if the value parameter is not
explicitly used. By defining a standard set of value types and their explicitly used. By defining a standard set of value types and their
formats, existing parsing and processing code can be leveraged. The formats, existing parsing and processing code can be leveraged. The
predefined data type values MUST NOT be repeated in COMMA separated predefined data type values MUST NOT be repeated in COMMA separated
value lists except within the N, NICKNAME, ADR and CATEGORIES value lists except within the N, NICKNAME, ADR and CATEGORIES
properties. properties.
skipping to change at page 18, line 36 skipping to change at page 17, line 41
value-type = "text" value-type = "text"
/ "uri" / "uri"
/ "date" / "date"
/ "time" / "time"
/ "date-time" / "date-time"
/ "timestamp" / "timestamp"
/ "boolean" / "boolean"
/ "integer" / "integer"
/ "float" / "float"
/ "binary"
/ "language-tag" / "language-tag"
/ "utc-offset" / "utc-offset"
/ iana-token ; registered as described in section 12 / iana-token ; registered as described in section 12
/ x-name / x-name
5.4. PREF 5.3. PREF
The PREF parameter is optional, and is used to indicate that the The PREF parameter is optional, and is used to indicate that the
corresponding instance of a property is preferred by the vCard corresponding instance of a property is preferred by the vCard
author. Its value MUST be an integer between 1 and 100 that author. Its value MUST be an integer between 1 and 100 that
quantifies the level of preference. Lower values correspond to a quantifies the level of preference. Lower values correspond to a
higher level of preference, 1 being most preferred. higher level of preference, 1 being most preferred.
When the parameter is absent, the default MUST be to interpret the When the parameter is absent, the default MUST be to interpret the
property instance as being least preferred. property instance as being least preferred.
skipping to change at page 19, line 18 skipping to change at page 18, line 22
NOT be interpreted on its own. NOT be interpreted on its own.
This parameter MAY be applied to any property that allows multiple This parameter MAY be applied to any property that allows multiple
instances. instances.
ABNF: ABNF:
pref-param = "PREF=" (1*2DIGIT / "100") pref-param = "PREF=" (1*2DIGIT / "100")
; An integer between 1 and 100. ; An integer between 1 and 100.
5.5. ALTID 5.4. ALTID
The ALTID parameter is used to "tag" property instances as being The ALTID parameter is used to "tag" property instances as being
alternative representations of the same logical property. For alternative representations of the same logical property. For
example, translations of a property in multiple languages generates example, translations of a property in multiple languages generates
multiple property instances having different LANGUAGE (Section 5.1) multiple property instances having different LANGUAGE (Section 5.1)
parameter which are tagged with the same ALTID value. parameter which are tagged with the same ALTID value.
This parameter's value is treated as an opaque string. Its sole This parameter's value is treated as an opaque string. Its sole
purpose is to be compared for equality against other ALTID parameter purpose is to be compared for equality against other ALTID parameter
values. values.
Two property instances are considered alternative representations of Two property instances are considered alternative representations of
the same logical property if and only if their names as well as the the same logical property if and only if their names as well as the
value of their ALTID parameters are identical. Property instances value of their ALTID parameters are identical. Property instances
without the ALTID parameter MUST NOT be considered an alternative without the ALTID parameter MUST NOT be considered an alternative
representation of any other property instance. Values for the ALTID representation of any other property instance. Values for the ALTID
parameter are not globally unique: they MAY be reused for different parameter are not globally unique: they MAY be reused for different
property names. property names.
Property instances having the same ALTID parameter value count as 1 Property instances having the same ALTID parameter value count as 1
toward cardinality. Therefore, since BIRTH (Section 6.2.7) has toward cardinality. Therefore, since N (Section 6.2.2) has
cardinality (0,1) and TITLE (Section 6.6.1) has cardinality (0,n), cardinality *1 and TITLE (Section 6.6.1) has cardinality *, these
these three examples would be legal: three examples would be legal:
BIRTH;ALTID=1;LANGUAGE=fr:Ville de Quebec N;ALTID=1;LANGUAGE=jp:<U+5C71><U+7530>;<U+592A><U+90CE>;;;
BIRTH;ALTID=1;LANGUAGE=en:Quebec City N;ALTID=1;LANGUAGE=en:Yamada;Taro;;;
(<U+XXXX> denotes a UTF8-encoded Unicode character.)
TITLE;ALTID=1;LANGUAGE=fr:Patron TITLE;ALTID=1;LANGUAGE=fr:Patron
TITLE;ALTID=1;LANGUAGE=en:Boss TITLE;ALTID=1;LANGUAGE=en:Boss
TITLE;ALTID=1;LANGUAGE=fr:Patron TITLE;ALTID=1;LANGUAGE=fr:Patron
TITLE;ALTID=1;LANGUAGE=en:Boss TITLE;ALTID=1;LANGUAGE=en:Boss
TITLE;ALTID=2;LANGUAGE=en:Chief vCard Evangelist TITLE;ALTID=2;LANGUAGE=en:Chief vCard Evangelist
while this one would not: while this one would not:
BIRTH;ALTID=1;LANGUAGE=fr:Ville de Quebec N;ALTID=1;LANGUAGE=jp:<U+5C71><U+7530>;<U+592A><U+90CE>;;;
BIRTH:Quebec City N:Yamada;Taro;;;
(Two instances of the BIRTH property.) (Two instances of the N property.)
and these three would be legal but questionable: and these three would be legal but questionable:
TITLE;ALTID=1;LANGUAGE=fr:Patron TITLE;ALTID=1;LANGUAGE=fr:Patron
TITLE;ALTID=2;LANGUAGE=en:Boss TITLE;ALTID=2;LANGUAGE=en:Boss
(Should probably have the same ALTID value.) (Should probably have the same ALTID value.)
TITLE;ALTID=1;LANGUAGE=fr:Patron TITLE;ALTID=1;LANGUAGE=fr:Patron
TITLE:LANGUAGE=en:Boss TITLE:LANGUAGE=en:Boss
(Second line should probably have ALTID=1.) (Second line should probably have ALTID=1.)
BIRTH;ALTID=1;LANGUAGE=fr:Ville de Quebec N;ALTID=1;LANGUAGE=jp:<U+5C71><U+7530>;<U+592A><U+90CE>;;;
BIRTH;ALTID=1;LANGUAGE=en:Quebec City N;ALTID=1;LANGUAGE=en:Yamada;Taro;;;
BIRTH;ALTID=1;LANGUAGE=en:Montreal N;ALTID=1;LANGUAGE=en:Smith;John;;;
(The last line should probably have ALTID=2. But that would be (The last line should probably have ALTID=2. But that would be
illegal because BIRTH has cardinality (0,1).) illegal because N has cardinality *1.)
The ALTID property MAY also be used in may contexts other than with The ALTID property MAY also be used in may contexts other than with
the LANGUAGE parameter. Here's an example with two representations the LANGUAGE parameter. Here's an example with two representations
of the same photo in different file formats: of the same photo in different file formats:
PHOTO;ALTID=1;ENCODING=b;FMTTYPE=image/jpeg:... PHOTO;ALTID=1:data:image/jpeg;base64,...
PHOTO;ALTID=1;ENCODING=b;FMTTYPE=image/jp2:... PHOTO;ALTID=1;data:image/jp2;base64,...
ABNF: ABNF:
altid-param = "ALTID=" param-value altid-param = "ALTID=" param-value
5.6. PID 5.5. PID
The PID parameter is used to identify a specific property among The PID parameter is used to identify a specific property among
multiple instances. It plays a role analogous to the UID property multiple instances. It plays a role analogous to the UID property
(Section 6.7.6) on a per-property instead of per-vCard basis. It MAY (Section 6.7.6) on a per-property instead of per-vCard basis. It MAY
appear more than once in a given property. It MUST NOT appear on appear more than once in a given property. It MUST NOT appear on
properties that may have only one instance per vCard. Its value is properties that may have only one instance per vCard. Its value is
either a single small positive integer, or a pair of small positive either a single small positive integer, or a pair of small positive
integers separated by a dot. Multiple values may be encoded in a integers separated by a dot. Multiple values may be encoded in a
single PID parameter by separating the values with a comma ",". See single PID parameter by separating the values with a comma ",". See
Section 7 for more details on its usage. Section 7 for more details on its usage.
ABNF: ABNF:
pid-param = "PID=" pid-value *("," pid-value) pid-param = "PID=" pid-value *("," pid-value)
pid-value = 1*DIGIT ["." 1*DIGIT] pid-value = 1*DIGIT ["." 1*DIGIT]
5.7. TYPE 5.6. TYPE
The TYPE parameter has multiple, different uses. In general, it is a The TYPE parameter has multiple, different uses. In general, it is a
way of specifying class characteristics of the associated property. way of specifying class characteristics of the associated property.
Most of the time, its value is a comma-separated subset of a pre- Most of the time, its value is a comma-separated subset of a pre-
defined enumeration. In this document, the following properties make defined enumeration. In this document, the following properties make
use of this parameter: FN, NICKNAME, PHOTO, ADR, LABEL, TEL, EMAIL, use of this parameter: FN, NICKNAME, PHOTO, ADR, TEL, EMAIL, IMPP,
IMPP, LANG, TZ, GEO, TITLE, ROLE, LOGO, ORG, RELATED, CATEGORIES, LANG, TZ, GEO, TITLE, ROLE, LOGO, ORG, RELATED, CATEGORIES, NOTE,
NOTE, SOUND, URL, KEY, FBURL, CALADRURI, and CALURI. The TYPE SOUND, URL, KEY, FBURL, CALADRURI, and CALURI. The TYPE parameter
parameter MUST NOT be applied on other properties defined in this MUST NOT be applied on other properties defined in this document.
document.
The "work" and "home" values act like tags. The "work" value implies The "work" and "home" values act like tags. The "work" value implies
that the property is related to an individual's work place, while the that the property is related to an individual's work place, while the
"home" value implies that the property is related to an individual's "home" value implies that the property is related to an individual's
personal life. When neither "work" nor "home" is present, it is personal life. When neither "work" nor "home" is present, it is
implied that the property is related to both an individual's work implied that the property is related to both an individual's work
place and personal life in the case that the KIND property's value is place and personal life in the case that the KIND property's value is
"individual", or to none in other cases. "individual", or to none in other cases.
ABNF: ABNF:
type-param = "TYPE=" type-value *("," type-value) type-param = "TYPE=" type-value *("," type-value)
type-value = "work" / "home" / type-param-tel type-value = "work" / "home" / type-param-tel
/ type-param-related / iana-token / x-name / type-param-related / iana-token / x-name
; This is further defined in individual property sections. ; This is further defined in individual property sections.
5.8. CALSCALE 5.7. CALSCALE
The CALSCALE parameter is used to define the calendar system in which The CALSCALE parameter is identical to the CALSCALE property in
a date or date-time value is expressed. The only value specified in iCalendar (see [RFC5545], section 3.7.1). It is used to define the
this document is "gregorian", which stands for the Gregorian system. calendar system in which a date or date-time value is expressed. The
It is the default when the parameter is absent. only value specified by iCalendar is "gregorian", which stands for
the Gregorian system. It is the default when the parameter is
absent. Additional values may be defined in extension documents and
registered from IANA (see Section 10.3.4). A vCard implementation
MUST ignore properties with a CALSCALE parameter value that it does
not understand.
ABNF: ABNF:
calscale-param = "CALSCALE=" calscale-value calscale-param = "CALSCALE=" calscale-value
calscale-value = "gregorian" / iana-token / x-name calscale-value = "gregorian" / iana-token / x-name
5.9. SORT-AS 5.8. SORT-AS
The "sort-as" parameter is used to specify the string to be used for The "sort-as" parameter is used to specify the string to be used for
national-language-specific sorting. Without this information, national-language-specific sorting. Without this information,
sorting algorithms could incorrectly sort this vCard within a sorting algorithms could incorrectly sort this vCard within a
sequence of sorted vCards. When this property is present in a vCard, sequence of sorted vCards. When this property is present in a vCard,
then the given strings are used for sorting the vCard. then the given strings are used for sorting the vCard.
This parameter's value is a comma-separated list which MUST have as This parameter's value is a comma-separated list which MUST have as
many or less elements as the corresponding property value has many or less elements as the corresponding property value has
components. components.
skipping to change at page 23, line 23 skipping to change at page 22, line 41
If sorted by given name the results would be: If sorted by given name the results would be:
Christine d'Aboville Christine d'Aboville
H. James de Mann H. James de Mann
Osamu Koura Osamu Koura
Oscar del Pozo Oscar del Pozo
Rene van der Harten Rene van der Harten
Robert Pau Shou Chang Robert Pau Shou Chang
5.10. GEO 5.9. GEO
The GEO parameter can be used to indicate global positioning The GEO parameter can be used to indicate global positioning
information that is specific to an address. Its value is the same as information that is specific to an address. Its value is the same as
that of the GEO property (see Section 6.5.2). that of the GEO property (see Section 6.5.2).
ABNF: ABNF:
geo-param = "GEO=" DQUOTE uri DQUOTE geo-param = "GEO=" DQUOTE uri DQUOTE
5.11. TZ 5.10. TZ
The TZ parameter can be used to indicate time zone information that The TZ parameter can be used to indicate time zone information that
is specific to an address. Its value is the same as that of the TZ is specific to an address. Its value is the same as that of the TZ
property. property.
ABNF: ABNF:
tz-param = "TZ=" (param-value / DQUOTE uri DQUOTE) tz-param = "TZ=" (param-value / DQUOTE uri DQUOTE)
5.12. VERSION
The VERSION parameter indicates the version number of a property
value's format. In this specification, it is only used with the XML
property (Section 6.1.5) to indicate the XML version of the value.
ABNF:
version-param = "VERSION=" param-value
5.13. FMTTYPE
The FMTTYPE parameter indicates the content type [RFC4288] of a
property's value. It is most often used on properties with a
"binary" value type.
ABNF:
fmttype-param = "FMTTYPE=" type-name "/" subtype-name
; "type-name" and "subtype-name" are defined in
; Section 4.2 of [RFC4288].
6. vCard Properties 6. vCard Properties
What follows is an enumeration of the standard vCard properties. What follows is an enumeration of the standard vCard properties.
Property cardinalities are indicated using the following notation: Property cardinalities are indicated using the following notation,
which is based on ABNF (see [RFC5234], section 3.6):
+-------------+--------------------------------------------------+ +-------------+--------------------------------------------------+
| Cardinality | Meaning | | Cardinality | Meaning |
+-------------+--------------------------------------------------+ +-------------+--------------------------------------------------+
| (1,1) | Exactly one instance per vCard MUST be present. | | 1 | Exactly one instance per vCard MUST be present. |
| (0,1) | Exactly one instance per vCard MAY be present. | | *1 | Exactly one instance per vCard MAY be present. |
| (1,n) | One or more instances per vCard MUST be present. | | 1* | One or more instances per vCard MUST be present. |
| (0,n) | One or more instances per vCard MAY be present. | | * | One or more instances per vCard MAY be present. |
+-------------+--------------------------------------------------+ +-------------+--------------------------------------------------+
6.1. General Properties 6.1. General Properties
6.1.1. BEGIN 6.1.1. BEGIN
Purpose: To denote the beginning of a syntactic entity within a Purpose: To denote the beginning of a syntactic entity within a
text/vcard content-type. text/vcard content-type.
Value type: text Value type: text
Cardinality: (1,1) Cardinality: 1
Special notes: The content entity MUST begin with the BEGIN property Special notes: The content entity MUST begin with the BEGIN property
with a value of "VCARD". The value is case-insensitive. with a value of "VCARD". The value is case-insensitive.
The BEGIN property is used in conjunction with the END property to The BEGIN property is used in conjunction with the END property to
delimit an entity containing a related set of properties within an delimit an entity containing a related set of properties within an
text/vcard content-type. This construct can be used instead of or text/vcard content-type. This construct can be used instead of or
in addition to wrapping separate sets of information inside in addition to wrapping separate sets of information inside
additional MIME headers. It is provided for applications that additional MIME headers. It is provided for applications that
wish to define content that can contain multiple entities within wish to define content that can contain multiple entities within
skipping to change at page 25, line 22 skipping to change at page 24, line 21
BEGIN:VCARD BEGIN:VCARD
6.1.2. END 6.1.2. END
Purpose: To denote the end of a syntactic entity within a text/vcard Purpose: To denote the end of a syntactic entity within a text/vcard
content-type. content-type.
Value type: text Value type: text
Cardinality: (1,1) Cardinality: 1
Special notes: The content entity MUST end with the END type with a Special notes: The content entity MUST end with the END type with a
value of "VCARD". The value is case-insensitive. value of "VCARD". The value is case-insensitive.
The END property is used in conjunction with the BEGIN property to The END property is used in conjunction with the BEGIN property to
delimit an entity containing a related set of properties within an delimit an entity containing a related set of properties within an
text/vcard content-type. This construct can be used instead of or text/vcard content-type. This construct can be used instead of or
in addition to wrapping separate sets of information inside in addition to wrapping separate sets of information inside
additional MIME headers. It is provided for applications that additional MIME headers. It is provided for applications that
wish to define content that can contain multiple entities within wish to define content that can contain multiple entities within
skipping to change at page 26, line 6 skipping to change at page 25, line 4
Example: Example:
END:VCARD END:VCARD
6.1.3. SOURCE 6.1.3. SOURCE
Purpose: To identify the source of directory information contained Purpose: To identify the source of directory information contained
in the content type. in the content type.
Value type: uri Value type: uri
Cardinality: *
Cardinality: (0,n)
Special notes: The SOURCE property is used to provide the means by Special notes: The SOURCE property is used to provide the means by
which applications knowledgable in the given directory service which applications knowledgable in the given directory service
protocol can obtain additional or more up-to-date information from protocol can obtain additional or more up-to-date information from
the directory service. It contains a URI as defined in [RFC3986] the directory service. It contains a URI as defined in [RFC3986]
and/or other information referencing the vCard to which the and/or other information referencing the vCard to which the
information pertains. When directory information is available information pertains. When directory information is available
from more than one source, the sending entity can pick what it from more than one source, the sending entity can pick what it
considers to be the best source, or multiple SOURCE properties can considers to be the best source, or multiple SOURCE properties can
be included. be included.
skipping to change at page 26, line 38 skipping to change at page 25, line 35
SOURCE:http://directory.example.com/addressbooks/jdoe/ SOURCE:http://directory.example.com/addressbooks/jdoe/
Jean%20Dupont.vcf Jean%20Dupont.vcf
6.1.4. KIND 6.1.4. KIND
Purpose: To specify the kind of object the vCard represents. Purpose: To specify the kind of object the vCard represents.
Value type: A single text value. Value type: A single text value.
Cardinality: (0,1) Cardinality: *1
Special notes: The value may be one of: "individual" for a single Special notes: The value may be one of: "individual" for a single
person, "group" for a group, "org" for an organization, "location" person, "group" for a group, "org" for an organization, "location"
for a named geographical place, "thing" for an inanimate object for a named geographical place, an x-name or an iana-token. If
(e.g. a device, a server, etc.), an x-name or an iana-token. If
this property is absent, "individual" MUST be assumed as default. this property is absent, "individual" MUST be assumed as default.
Additional values may be registered from IANA (see
Section 10.3.4). A new value's specification document MUST
specify which properties make sense for that new kind of vCard,
and which do not.
ABNF: ABNF:
KIND-param = "VALUE=text" / any-param KIND-param = "VALUE=text" / any-param
KIND-value = "individual" / "group" / "org" / "location" / "thing" KIND-value = "individual" / "group" / "org" / "location"
/ iana-token / x-name / iana-token / x-name
Example: Example:
This represents someone named Jane Doe working in the marketing This represents someone named Jane Doe working in the marketing
department of the North American division of ABC Inc. department of the North American division of ABC Inc.
BEGIN:VCARD BEGIN:VCARD
VERSION:4.0 VERSION:4.0
KIND:individual KIND:individual
skipping to change at page 27, line 32 skipping to change at page 26, line 32
KIND:org KIND:org
FN:ABC Marketing FN:ABC Marketing
ORG:ABC, Inc.;North American Division;Marketing ORG:ABC, Inc.;North American Division;Marketing
END:VCARD END:VCARD
6.1.5. XML 6.1.5. XML
Purpose: To include extended XML-encoded vCard data in a plain Purpose: To include extended XML-encoded vCard data in a plain
vCard. vCard.
Value type: A single text value (default) or a single binary value. Value type: A single text value.
Cardinality: (0,n) Cardinality: *
Special notes: The content of this property is a single XML element Special notes: The content of this property is a single XML 1.0
whose namespace MUST be explicitly specified using the xmlns element whose namespace MUST be explicitly specified using the
attribute and MUST NOT be the vCard 4 namespace xmlns attribute and MUST NOT be the vCard 4 namespace
("urn:ietf:params:xml:ns:vcard-4.0"). (This implies that it ("urn:ietf:params:xml:ns:vcard-4.0"). (This implies that it
cannot duplicate a standard vCard property.) The element is to be cannot duplicate a standard vCard property.) The element is to be
interpreted as if it was contained in a <vcard> element, as interpreted as if it was contained in a <vcard> element, as
defined in [I-D.ietf-vcarddav-vcardxml]. defined in [I-D.ietf-vcarddav-vcardxml].
The fragment is subject to normal line folding and escaping, i.e. The fragment is subject to normal line folding and escaping, i.e.
replace all backslashes with "\\", then replace all newlines with replace all backslashes with "\\", then replace all newlines with
"\n", then fold long lines. "\n", then fold long lines.
The VERSION parameter (Section 5.12) indicates the XML version of
the property's content (e.g. "1.0"). It MUST be present.
The value type MAY be set to "binary", in which case the ENCODING
parameter (Section 5.2) MUST be used.
Support for this property is OPTIONAL, but implementations of this Support for this property is OPTIONAL, but implementations of this
specification MUST preserve instances of this property when specification MUST preserve instances of this property when
propagating vCards. propagating vCards.
See [I-D.ietf-vcarddav-vcardxml] for more information on the See [I-D.ietf-vcarddav-vcardxml] for more information on the
intended use of this property. intended use of this property.
ABNF: ABNF:
XML-param = XML-text-param / XML-binary-param XML-param = "VALUE=text" / altid-param
XML-value = XML-text-value / XML-binary-value XML-value = text
; Value and parameter MUST match.
XML-text-param = "VALUE=text"
XML-text-value = text
XML-binary-param = "VALUE=binary" / encoding-param
XML-binary-param = binary
XML-param =/ altid-param / version-param
; VERSION parameter MUST be present.
6.2. Identification Properties 6.2. Identification Properties
These types are used to capture information associated with the These types are used to capture information associated with the
identification and naming of the person or resource associated with identification and naming of the person or resource associated with
the vCard. the vCard.
6.2.1. FN 6.2.1. FN
Purpose: To specify the formatted text corresponding to the name of Purpose: To specify the formatted text corresponding to the name of
the object the vCard represents. the object the vCard represents.
Value type: A single text value. Value type: A single text value.
Cardinality: (1,n) Cardinality: 1*
Special notes: This property is based on the semantics of the X.520 Special notes: This property is based on the semantics of the X.520
Common Name attribute. The property MUST be present in the vCard Common Name attribute. The property MUST be present in the vCard
object. object.
ABNF: ABNF:
FN-param = "VALUE=text" / type-param / language-param / altid-param FN-param = "VALUE=text" / type-param / language-param / altid-param
/ pid-param / pref-param / any-param / pid-param / pref-param / any-param
FN-value = text FN-value = text
Example: Example:
FN:Mr. John Q. Public\, Esq. FN:Mr. John Q. Public\, Esq.
6.2.2. N 6.2.2. N
Purpose: To specify the components of the name of the object the Purpose: To specify the components of the name of the object the
vCard represents. vCard represents.
skipping to change at page 29, line 19 skipping to change at page 28, line 5
FN:Mr. John Q. Public\, Esq. FN:Mr. John Q. Public\, Esq.
6.2.2. N 6.2.2. N
Purpose: To specify the components of the name of the object the Purpose: To specify the components of the name of the object the
vCard represents. vCard represents.
Value type: A single structured text value. Each component can have Value type: A single structured text value. Each component can have
multiple values. multiple values.
Cardinality: (0,1) Cardinality: *1
Special note: The structured property value corresponds, in Special note: The structured property value corresponds, in
sequence, to the Family Names (also known as surnames), Given sequence, to the Family Names (also known as surnames), Given
Names, Honorific Prefixes, and Honorific Suffixes. The text Names, Additional Names, Honorific Prefixes, and Honorific
components are separated by the SEMI-COLON character (ASCII Suffixes. The text components are separated by the SEMI-COLON
decimal 59). Individual text components can include multiple text character (ASCII decimal 59). Individual text components can
values separated by the COMMA character (ASCII decimal 44). This include multiple text values separated by the COMMA character
property is based on the semantics of the X.520 individual name (ASCII decimal 44). This property is based on the semantics of
attributes. The property SHOULD be present in the vCard object the X.520 individual name attributes. The property SHOULD be
when the name of the object the vCard represents follows the X.520 present in the vCard object when the name of the object the vCard
model. represents follows the X.520 model.
The SORT-AS parameter MAY be applied to this property. The SORT-AS parameter MAY be applied to this property.
ABNF: ABNF:
N-param = "VALUE=text" / sort-as-param / language-param N-param = "VALUE=text" / sort-as-param / language-param
/ altid-param / any-param / altid-param / any-param
N-value = list-component 3(";" list-component) N-value = list-component 4(";" list-component)
list-component = list-component-value *("," list-component-value) list-component = list-component-value *("," list-component-value)
list-component-value = "\\" / "\," / "\;" / "\n" / WSP / NON-ASCII list-component-value = "\\" / "\," / "\;" / "\n" / WSP / NON-ASCII
/ %x21-2B / %x2D-3A / %x3C-5B / %x5D-7E / %x21-2B / %x2D-3A / %x3C-5B / %x5D-7E
Examples: Examples:
N:Public;John,Q.;Mr.;Esq. N:Public;John;Quinlan;Mr.;Esq.
N:Stevenson;John,Philip,Paul;Dr.;Jr.,M.D.,A.C.P. N:Stevenson;John;Philip,Paul;Dr.;Jr.,M.D.,A.C.P.
6.2.3. NICKNAME 6.2.3. NICKNAME
Purpose: To specify the text corresponding to the nickname of the Purpose: To specify the text corresponding to the nickname of the
object the vCard represents. object the vCard represents.
Value type: One or more text values separated by a COMMA character Value type: One or more text values separated by a COMMA character
(ASCII decimal 44). (ASCII decimal 44).
Cardinality: (0,n) Cardinality: *
Special note: The nickname is the descriptive name given instead of Special note: The nickname is the descriptive name given instead of
or in addition to the one belonging to a the object the vCard or in addition to the one belonging to a the object the vCard
represents. It can also be used to specify a familiar form of a represents. It can also be used to specify a familiar form of a
proper name specified by the FN or N properties. proper name specified by the FN or N properties.
ABNF: ABNF:
NICKNAME-param = "VALUE=text" / type-param / language-param NICKNAME-param = "VALUE=text" / type-param / language-param
/ altid-param / pid-param / pref-param / any-param / altid-param / pid-param / pref-param / any-param
skipping to change at page 30, line 39 skipping to change at page 29, line 24
NICKNAME:Jim,Jimmie NICKNAME:Jim,Jimmie
NICKNAME;TYPE=work:Boss NICKNAME;TYPE=work:Boss
6.2.4. PHOTO 6.2.4. PHOTO
Purpose: To specify an image or photograph information that Purpose: To specify an image or photograph information that
annotates some aspect of the object the vCard represents. annotates some aspect of the object the vCard represents.
Encoding: The encoding MUST be reset to "b" using the ENCODING Value type: A single URI.
parameter in order to specify inline, encoded binary data. If the
value is referenced by a URI value, then the default encoding is
used and no explicit ENCODING parameter is needed.
Value type: A single value. The default is binary value. It can
also be reset to uri value. The uri value can be used to specify
a value outside of this MIME entity.
Cardinality: (0,n) Cardinality: *
Special notes: This property SHOULD include the parameter FMTTYPE to
specify the graphic image format type. The FMTTYPE parameter
value MUST be an image media type as specified in [RFC4288]. The
full media type name, including the "image/" prefix, MUST be used.
However, implementations SHOULD be able to handle bare subtypes.
ABNF: ABNF:
PHOTO-param = inline-param / refer-param / altid-param / type-param PHOTO-param = "VALUE=uri" / altid-param / type-param
PHOTO-value = inline-value / refer-value PHOTO-value = uri
; Value and parameter MUST match.
PHOTO-param =/ pid-param / pref-param / any-param
inline-param = "VALUE=binary" / encoding-param / fmttype-param
inline-value = binary
refer-param = "VALUE=uri" / fmttype-param
refer-value = uri
Examples: Examples:
PHOTO;VALUE=uri:http://www.example.com/pub/photos/jqpublic.gif PHOTO:http://www.example.com/pub/photos/jqpublic.gif
PHOTO;ENCODING=b;FMTTYPE=image/jpeg:MIICajCCAdOgAwIBAgICBEUwDQY PHOTO:data:image/jpeg;base64,MIICajCCAdOgAwIBAgICBEUwDQYJKoZIhv
JKoZIhvcNAQEEBQAwdzELMAkGA1UEBhMCVVMxLDAqBgNVBAoTI05ldHNjYXBlI AQEEBQAwdzELMAkGA1UEBhMCVVMxLDAqBgNVBAoTI05ldHNjYXBlIENvbW11bm
ENvbW11bmljYXRpb25zIENvcnBvcmF0aW9uMRwwGgYDVQQLExNJbmZvcm1hdGl ljYXRpb25zIENvcnBvcmF0aW9uMRwwGgYDVQQLExNJbmZvcm1hdGlvbiBTeXN0
<...remainder of "B" encoded binary data...> <...remainder of base64-encoded data...>
6.2.5. BDAY 6.2.5. BDAY
Purpose: To specify the birth date of the object the vCard Purpose: To specify the birth date of the object the vCard
represents. represents.
Value type: The default is a single date-and-or-time value. It can Value type: The default is a single date-and-or-time value. It can
also be reset to a single text value. also be reset to a single text value.
Cardinality: (0,1) Cardinality: *1
ABNF: ABNF:
BDAY-param = BDAY-param-date / BDAY-param-text BDAY-param = BDAY-param-date / BDAY-param-text
BDAY-value = date-and-or-time / text BDAY-value = date-and-or-time / text
; Value and parameter MUST match. ; Value and parameter MUST match.
BDAY-param-date = "VALUE=date-and-or-time" BDAY-param-date = "VALUE=date-and-or-time"
BDAY-param-text = "VALUE=text" / language-param BDAY-param-text = "VALUE=text" / language-param
skipping to change at page 32, line 23 skipping to change at page 30, line 27
; calscale-param can only be present when BDAY-value is ; calscale-param can only be present when BDAY-value is
; date-and-or-time and actually contains a date or date-time. ; date-and-or-time and actually contains a date or date-time.
Examples: Examples:
BDAY:19960415 BDAY:19960415
BDAY:--0415 BDAY:--0415
BDAY;19531015T231000Z BDAY;19531015T231000Z
BDAY;VALUE=text:circa 1800 BDAY;VALUE=text:circa 1800
6.2.6. DDAY 6.2.6. ANNIVERSARY
Purpose: To specify the date of death of the object the vCard
represents.
Value type: The default is a single date-and-or-time value. It can
also be reset to a single text value.
Cardinality: (0,1)
ABNF:
DDAY-param = DDAY-param-date / DDAY-param-text
DDAY-value = date-and-or-time / text
; Value and parameter MUST match.
DDAY-param-date = "VALUE=date-and-or-time"
DDAY-param-text = "VALUE=text" / language-param
DDAY-param =/ altid-param / calscale-param / any-param
; calscale-param can only be present when DDAY-value is
; date-and-or-time and actually contains a date or date-time.
6.2.7. BIRTH
Purpose: To specify the place of birth of the object the vCard
represents.
Value type: A single text value (default) or a single URI value.
Cardinality: (0,1)
ABNF:
BIRTH-param = "VALUE=" / ("text" / "uri")
BIRTH-value = text / uri
; Value and parameter MUST match.
BIRTH-param =/ altid-param / language-param / any-param
Examples:
BIRTH:Babies'R'Us Hospital
BIRTH;VALUE=uri:http://example.com/hospitals/babiesrus.vcf
BIRTH;VALUE=uri:geo:46.769307,-71.283079
6.2.8. DEATH
Purpose: To specify the place of death of the object the vCard
represents.
Value type: A single text value (default) or a single URI value.
Cardinality: (0,1)
ABNF:
DEATH-param = "VALUE=" ("text / "uri")
DEATH-value = text / uri
; Value and parameter MUST match.
DEATH-param =/ altid-param / language-param / any-param
Examples:
DEATH:Aboard the Titanic\, near Newfoundland
DEATH;VALUE=uri:http://example.com/ships/titanic.vcf
DEATH;VALUE=uri:41.731944,-49.945833
6.2.9. ANNIVERSARY
Purpose: The date of marriage, or equivalent, of the object the Purpose: The date of marriage, or equivalent, of the object the
vCard represents. vCard represents.
Value type: The default is a single date-and-or-time value. It can Value type: The default is a single date-and-or-time value. It can
also be reset to a single text value. also be reset to a single text value.
Cardinality: (0,1) Cardinality: *1
ABNF: ABNF:
ANNIVERSARY-param = "VALUE=" ("date-and-or-time" / "text") ANNIVERSARY-param = "VALUE=" ("date-and-or-time" / "text")
ANNIVERSARY-value = date-and-or-time / text ANNIVERSARY-value = date-and-or-time / text
; Value and parameter MUST match. ; Value and parameter MUST match.
ANNIVERSARY-param =/ altid-param / calscale-param / any-param ANNIVERSARY-param =/ altid-param / calscale-param / any-param
; calscale-param can only be present when ANNIVERSARY-value is ; calscale-param can only be present when ANNIVERSARY-value is
; date-and-or-time and actually contains a date or date-time. ; date-and-or-time and actually contains a date or date-time.
Examples: Examples:
ANNIVERSARY:19960415 ANNIVERSARY:19960415
6.2.10. SEX 6.2.7. GENDER
Purpose: To specify the sex of the object the vCard represents, as Purpose: To specify the gender of the object the vCard represents.
defined in [ISO.5218.2004].
Value type: A single integer value. Value type: A single text value.
Cardinality: (0,1) Cardinality: *1
Special notes: The value 0 stands for "not known", 1 stands for Special notes: The values "male" and "female" are predefined. Any
"male", 2 stands for "female", and 9 stands for "not applicable". other text value MAY be used. vCard implementations MUST ignore
values they do not understand. An IANA registry (see
Section 10.3.4) is created for registering additional well-known
values.
ABNF: ABNF:
SEX-param = "VALUE=integer" / any-param GENDER-param = "VALUE=text" / any-param
SEX-value = "0" / "1" / "2" / "9" GENDER-value = "male" / "female" / iana-token / text
Example: Example:
SEX:2 GENDER:female
6.3. Delivery Addressing Properties 6.3. Delivery Addressing Properties
These types are concerned with information related to the delivery These types are concerned with information related to the delivery
addressing or label for the vCard object. addressing or label for the vCard object.
6.3.1. ADR 6.3.1. ADR
Purpose: To specify the components of the delivery address for the Purpose: To specify the components of the delivery address for the
vCard object. vCard object.
Value type: A single structured text value, separated by the SEMI- Value type: A single structured text value, separated by the SEMI-
COLON character (ASCII decimal 59). COLON character (ASCII decimal 59).
Cardinality: (0,n) Cardinality: *
Special notes: The structured type value consists of a sequence of Special notes: The structured type value consists of a sequence of
address components. The component values MUST be specified in address components. The component values MUST be specified in
their corresponding position. The structured type value their corresponding position. The structured type value
corresponds, in sequence, to the post office box; the extended corresponds, in sequence, to the post office box; the extended
address (e.g. apartment or suite number); the street address; the address (e.g. apartment or suite number); the street address; the
locality (e.g., city); the region (e.g., state or province); the locality (e.g., city); the region (e.g., state or province); the
postal code; the country name (full name in the language specified postal code; the country name (full name in the language specified
in Section 5.1). When a component value is missing, the in Section 5.1). When a component value is missing, the
associated component separator MUST still be specified. associated component separator MUST still be specified.
Experience with vCard 3 has shown that the first two components
(post office box and extended address) are the plagued with many
interoperability issues. To ensure maximal interoperability,
their values SHOULD be empty.
The text components are separated by the SEMI-COLON character The text components are separated by the SEMI-COLON character
(ASCII decimal 59). Where it makes semantic sense, individual (ASCII decimal 59). Where it makes semantic sense, individual
text components can include multiple text values (e.g., a "street" text components can include multiple text values (e.g., a "street"
component with multiple lines) separated by the COMMA character component with multiple lines) separated by the COMMA character
(ASCII decimal 44). (ASCII decimal 44).
The property can include the "PREF" parameter to indicate the The property can include the "PREF" parameter to indicate the
preferred delivery address when more than one address is preferred delivery address when more than one address is
specified. specified.
The GEO and TZ parameters MAY be used with this property. The GEO and TZ parameters MAY be used with this property.
The property can also include a "LABEL" parameter to present a
delivery delivery address label for the address. Its value is a
plain-text string representing the formatted address. Newlines
are encoded as \n, as they are for property values.
ABNF: ABNF:
ADR-param = "VALUE=text" / language-param / geo-param / tz-param label-param = "LABEL=" param-value
/ altid-param / pid-param / pref-param / type-param
/ any-param ADR-param = "VALUE=text" / label-param / language-param / geo-param
/ tz-param / altid-param / pid-param / pref-param
/ type-param / any-param
ADR-value = ADR-component-pobox ";" ADR-component-ext ";" ADR-value = ADR-component-pobox ";" ADR-component-ext ";"
ADR-component-street ";" ADR-component-locality ";" ADR-component-street ";" ADR-component-locality ";"
ADR-component-region ";" ADR-component-code ";" ADR-component-region ";" ADR-component-code ";"
ADR-component-country ADR-component-country
ADR-component-pobox = list-component ADR-component-pobox = list-component
ADR-component-ext = list-component ADR-component-ext = list-component
ADR-component-street = list-component ADR-component-street = list-component
ADR-component-locality = list-component ADR-component-locality = list-component
ADR-component-region = list-component ADR-component-region = list-component
ADR-component-code = list-component ADR-component-code = list-component
ADR-component-country = list-component ADR-component-country = list-component
Example: In this example the post office box and the extended address Example: In this example the post office box and the extended address
are absent. are absent.
ADR;GEO="geo:12.3457,78.910":;;123 Main Street;Any Town;CA ADR;GEO="geo:12.3457,78.910";LABEL="Mr. John Q. Public, Esq.\n
;91921-1234;U.S.A. Mail Drop: TNE QB\n123 Main Street\nAny Town, CA 91921-1234\n
U.S.A.":;;123 Main Street;Any Town;CA;91921-1234;U.S.A.
6.3.2. LABEL
Purpose: To specify the formatted text corresponding to a delivery
address of the object the vCard represents.
Value type: A single text value.
Cardinality: (0,n)
Special notes: The property value is formatted text that can be used
to present a delivery address label for the vCard object. The
property can include the "PREF" parameter to indicate the
preferred delivery address when more than one address is
specified.
ABNF:
LABEL-param = "VALUE=text" / language-param / pid-param
/ pref-param / altid-param / type-param / any-param
LABEL-value = text
Example: A multi-line address label.
LABEL:Mr.John Q. Public\, Esq.\nMail Drop: TNE QB\n
123 Main Street\nAny Town\, CA 91921-1234\nU.S.A.
6.4. Communications Properties 6.4. Communications Properties
These properties describe information about how to communicate with These properties describe information about how to communicate with
the object the vCard represents. the object the vCard represents.
6.4.1. TEL 6.4.1. TEL
Purpose: To specify the telephone number for telephony communication Purpose: To specify the telephone number for telephony communication
with the object the vCard represents. with the object the vCard represents.
Value type: A single URI value. It is expected that the URI scheme Value type: By default it is a single free-form text value (for
will be "tel", as specified in [RFC3966], but other schemes MAY be backward compatibility with vCard 3), but it SHOULD be reset to a
used. URI value. It is expected that the URI scheme will be "tel", as
specified in [RFC3966], but other schemes MAY be used.
Cardinality: (0,n) Cardinality: *
Special notes: This property is based on the X.520 Telephone Number Special notes: This property is based on the X.520 Telephone Number
attribute. attribute.
The property can include the "PREF" parameter to indicate a The property can include the "PREF" parameter to indicate a
preferred-use telephone number. preferred-use telephone number.
The property can include the parameter "TYPE" to specify intended The property can include the parameter "TYPE" to specify intended
use for the telephone number. The predefined values for the TYPE use for the telephone number. The predefined values for the TYPE
parameter are: parameter are:
skipping to change at page 38, line 11 skipping to change at page 34, line 11
alternate values. For example, the default TYPE of "voice" can be alternate values. For example, the default TYPE of "voice" can be
reset to a VOICE and FAX telephone number by the value list reset to a VOICE and FAX telephone number by the value list
"TYPE=voice,fax". "TYPE=voice,fax".
If this property's value is a URI that can also be used for If this property's value is a URI that can also be used for
instant messaging, the IMPP (Section 6.4.3) property SHOULD be instant messaging, the IMPP (Section 6.4.3) property SHOULD be
used in addition to this property. used in addition to this property.
ABNF: ABNF:
TEL-param = "VALUE=uri" / type-param / pid-param / pref-param TEL-param = TEL-text-param / TEL-uri-param
/ altid-param / any-param TEL-value = TEL-text-value / TEL-uri-value
TEL-value = uri ; Value and parameter MUST match
TEL-text-param = "VALUE=text"
TEL-text-value = text
TEL-uri-param = "VALUE=uri"
TEL-uri-value = uri
TEL-param =/ type-param / pid-param / pref-param / altid-param
/ any-param
type-param-tel = "text" / "voice" / "fax" / "cell" / "video" type-param-tel = "text" / "voice" / "fax" / "cell" / "video"
/ "pager" / "textphone" / iana-token / x-name / "pager" / "textphone" / iana-token / x-name
; type-param-tel MUST NOT be used with a property other than TEL. ; type-param-tel MUST NOT be used with a property other than TEL.
Example: Example:
TEL;PREF=1;TYPE=voice,home:tel:+1-555-555-5555;ext=5555 TEL;VALUE=uri;PREF=1;TYPE=voice,home:tel:+1-555-555-5555;ext=5555
TEL;TYPE=home:tel:+33-01-23-45-67 TEL;VALUE=uri;TYPE=home:tel:+33-01-23-45-67
6.4.2. EMAIL 6.4.2. EMAIL
Purpose: To specify the electronic mail address for communication Purpose: To specify the electronic mail address for communication
with the object the vCard represents. with the object the vCard represents.
Value type: A single text value. Value type: A single text value.
Cardinality: (0,n) Cardinality: *
Special notes: The property can include tye "PREF" parameter to Special notes: The property can include tye "PREF" parameter to
indicate a preferred-use email address when more than one is indicate a preferred-use email address when more than one is
specified. specified.
ABNF: ABNF:
EMAIL-param = "VALUE=text" / pid-param / pref-param / type-param EMAIL-param = "VALUE=text" / pid-param / pref-param / type-param
/ altid-param / any-param / altid-param / any-param
EMAIL-value = addr-spec ; from [RFC5322] section 3.4.1 EMAIL-value = addr-spec ; from [RFC5322] section 3.4.1
skipping to change at page 39, line 12 skipping to change at page 35, line 16
EMAIL;PREF=1:jane_doe@example.com EMAIL;PREF=1:jane_doe@example.com
6.4.3. IMPP 6.4.3. IMPP
Purpose: To specify the URI for instant messaging and presence Purpose: To specify the URI for instant messaging and presence
protocol communications with the object the vCard represents. protocol communications with the object the vCard represents.
Value type: A single URI. Value type: A single URI.
Cardinality: (0,n) Cardinality: *
Special notes: The property may include the "PREF" parameter to Special notes: The property may include the "PREF" parameter to
indicate that this is a preferred address and has the same indicate that this is a preferred address and has the same
semantics as the "PREF" parameter in a TEL property. semantics as the "PREF" parameter in a TEL property.
If this property's value is a URI that can be used for voice If this property's value is a URI that can be used for voice
and/or video, the TEL property (Section 6.4.1) SHOULD be used in and/or video, the TEL property (Section 6.4.1) SHOULD be used in
addition to this property. addition to this property.
This property is adapted from [RFC4770], which is made obsolete by This property is adapted from [RFC4770], which is made obsolete by
skipping to change at page 39, line 42 skipping to change at page 35, line 46
IMPP;PREF=1:xmpp:alice@example.com IMPP;PREF=1:xmpp:alice@example.com
6.4.4. LANG 6.4.4. LANG
Purpose: To specify the language(s) that may be used for contacting Purpose: To specify the language(s) that may be used for contacting
the individual associated with the vCard. the individual associated with the vCard.
Value type: A single language-tag value. Value type: A single language-tag value.
Cardinality: (0,n) Cardinality: *
ABNF: ABNF:
LANG-param = "VALUE=language-tag" / pid-param / pref-param LANG-param = "VALUE=language-tag" / pid-param / pref-param
/ altid-param / type-param / any-param / altid-param / type-param / any-param
LANG-value = Language-Tag LANG-value = Language-Tag
Example: Example:
LANG;TYPE=work;PREF=1:en LANG;TYPE=work;PREF=1:en
skipping to change at page 40, line 25 skipping to change at page 36, line 25
vCard represents. vCard represents.
6.5.1. TZ 6.5.1. TZ
Purpose: To specify information related to the time zone of the Purpose: To specify information related to the time zone of the
object the vCard represents. object the vCard represents.
Value type: The default is a single text value. It can also be Value type: The default is a single text value. It can also be
reset to a single URI or utc-offset value. reset to a single URI or utc-offset value.
Cardinality: (0,n) Cardinality: *
Special notes: It is expected that names from the public-domain Special notes: It is expected that names from the public-domain
Olson database [TZ-DB] will be used, but this is not a Olson database [TZ-DB] will be used, but this is not a
restriction. restriction.
Efforts are currently being directed at creating a standard URI Efforts are currently being directed at creating a standard URI
scheme for expressing time zone information. Usage of such a scheme for expressing time zone information. Usage of such a
scheme would ensure a high level of interoperability between scheme would ensure a high level of interoperability between
implementations that support it. implementations that support it.
skipping to change at page 41, line 17 skipping to change at page 37, line 17
TZ;VALUE=utc-offset:-0500 TZ;VALUE=utc-offset:-0500
; Note: utc-offset format is NOT RECOMMENDED. ; Note: utc-offset format is NOT RECOMMENDED.
6.5.2. GEO 6.5.2. GEO
Purpose: To specify information related to the global positioning of Purpose: To specify information related to the global positioning of
the object the vCard represents. the object the vCard represents.
Value type: A single URI. Value type: A single URI.
Cardinality: (0,n) Cardinality: *
Special notes: The "geo" URI scheme [RFC5870] is particularly well- Special notes: The "geo" URI scheme [RFC5870] is particularly well-
suited for this property, but other schemes MAY be used. suited for this property, but other schemes MAY be used.
ABNF: ABNF:
GEO-param = "VALUE=uri" / pid-param / pref-param / type-param GEO-param = "VALUE=uri" / pid-param / pref-param / type-param
/ altid-param / any-param / altid-param / any-param
GEO-value = uri GEO-value = uri
skipping to change at page 41, line 45 skipping to change at page 37, line 45
characteristics of the organization or organizational units of the characteristics of the organization or organizational units of the
object that the vCard represents. object that the vCard represents.
6.6.1. TITLE 6.6.1. TITLE
Purpose: To specify the position or job of the object the vCard Purpose: To specify the position or job of the object the vCard
represents. represents.
Value type: A single text value. Value type: A single text value.
Cardinality: (0,n) Cardinality: *
Special notes: This property is based on the X.520 Title attribute. Special notes: This property is based on the X.520 Title attribute.
ABNF: ABNF:
TITLE-param = "VALUE=text" / language-param / pid-param TITLE-param = "VALUE=text" / language-param / pid-param
/ pref-param / altid-param / type-param / any-param / pref-param / altid-param / type-param / any-param
TITLE-value = text TITLE-value = text
skipping to change at page 42, line 18 skipping to change at page 38, line 18
TITLE:Research Scientist TITLE:Research Scientist
6.6.2. ROLE 6.6.2. ROLE
Purpose: To specify the function or part played in a particular Purpose: To specify the function or part played in a particular
situation by the object the vCard represents. situation by the object the vCard represents.
Value type: A single text value. Value type: A single text value.
Cardinality: (0,n) Cardinality: *
Special notes: This property is based on the X.520 Business Category Special notes: This property is based on the X.520 Business Category
explanatory attribute. This property is included as an explanatory attribute. This property is included as an
organizational type to avoid confusion with the semantics of the organizational type to avoid confusion with the semantics of the
TITLE property and incorrect usage of that property when the TITLE property and incorrect usage of that property when the
semantics of this property is intended. semantics of this property is intended.
ABNF: ABNF:
ROLE-param = "VALUE=text" / language-param / pid-param / pref-param ROLE-param = "VALUE=text" / language-param / pid-param / pref-param
skipping to change at page 42, line 41 skipping to change at page 38, line 41
Example: Example:
ROLE:Project Leader ROLE:Project Leader
6.6.3. LOGO 6.6.3. LOGO
Purpose: To specify a graphic image of a logo associated with the Purpose: To specify a graphic image of a logo associated with the
object the vCard represents. object the vCard represents.
Encoding: The encoding MUST be reset to "b" using the ENCODING Value type: A single URI.
parameter in order to specify inline, encoded binary data. If the
value is referenced by a URI value, then the default encoding of
8bit is used and no explicit ENCODING parameter is needed.
Value type: A single value. The default is binary value. It can
also be reset to uri value. The uri value can be used to specify
a value outside of this MIME entity.
Cardinality: (0,n)
Special notes: This property SHOULD include the parameter FMTTYPE to Cardinality: *
specify the graphic image format type. The FMTTYPE parameter
value MUST be an image media type as specified in [RFC4288]. The
full media type name, including the "image/" prefix, MUST be used.
However, implementations SHOULD be able to handle bare subtypes.
ABNF: ABNF:
LOGO-param = inline-param / refer-param LOGO-param = "VALUE=uri" / language-param / pid-param / pref-param
LOGO-value = inline-value / refer-value / type-param / altid-param / any-param
; Value and parameter MUST match. LOGO-value = uri
LOGO-param =/ language-param / pid-param / pref-param / type-param
/ altid-param / any-param
Examples: Examples:
LOGO;VALUE=uri:http://www.example.com/pub/logos/abccorp.jpg LOGO:http://www.example.com/pub/logos/abccorp.jpg
LOGO;ENCODING=b;FMTTYPE=image/jpeg:MIICajCCAdOgAwIBAgICBEUwDQYJ LOGO:data:image/jpeg;base64,MIICajCCAdOgAwIBAgICBEUwDQYJKoZIhvc
KoZAQEEBQAwdzELMAkGA1UEBhMCVVMxLDAqBgNVBAoTI05ldHNjYXBlIENvbW1 AQEEBQAwdzELMAkGA1UEBhMCVVMxLDAqBgNVBAoTI05ldHNjYXBlIENvbW11bm
1bmljYXRpb25zIENvcnBvcmF0aW9uMRwwGgYDVQQLExNJbmZvcm1hdGlvbiBTe ljYXRpb25zIENvcnBvcmF0aW9uMRwwGgYDVQQLExNJbmZvcm1hdGlvbiBTeXN0
<...the remainder of "B" encoded binary data...> <...the remainder of base64-encoded data...>
6.6.4. ORG 6.6.4. ORG
Purpose: To specify the organizational name and units associated Purpose: To specify the organizational name and units associated
with the vCard. with the vCard.
Value type: A single structured text value consisting of components Value type: A single structured text value consisting of components
separated by the SEMI-COLON character (ASCII decimal 59). separated by the SEMI-COLON character (ASCII decimal 59).
Cardinality: (0,n) Cardinality: *
Special notes: The property is based on the X.520 Organization Name Special notes: The property is based on the X.520 Organization Name
and Organization Unit attributes. The property value is a and Organization Unit attributes. The property value is a
structured type consisting of the organization name, followed by structured type consisting of the organization name, followed by
zero or more levels of organizational unit names. zero or more levels of organizational unit names.
The SORT-AS parameter MAY be applied to this property. The SORT-AS parameter MAY be applied to this property.
ABNF: ABNF:
skipping to change at page 44, line 26 skipping to change at page 40, line 5
ORG:ABC, Inc.;North American Division;Marketing ORG:ABC, Inc.;North American Division;Marketing
6.6.5. MEMBER 6.6.5. MEMBER
Purpose: To include a member in the group this vCard represents. Purpose: To include a member in the group this vCard represents.
Value type: A single URI. It MAY refer to something other than a Value type: A single URI. It MAY refer to something other than a
vCard object. For example, an e-mail distribution list could vCard object. For example, an e-mail distribution list could
employ the "mailto" URI scheme for efficiency. employ the "mailto" URI scheme for efficiency.
Cardinality: (0,n) Cardinality: *
Special notes: This property MUST NOT be present unless the value of Special notes: This property MUST NOT be present unless the value of
the KIND property is "group". the KIND property is "group".
ABNF: ABNF:
MEMBER-param = "VALUE=uri" / pid-param / pref-param / altid-param MEMBER-param = "VALUE=uri" / pid-param / pref-param / altid-param
/ any-param / any-param
MEMBER-value = uri MEMBER-value = uri
skipping to change at page 45, line 34 skipping to change at page 41, line 4
VERSION:4.0 VERSION:4.0
KIND:group KIND:group
FN:Funky distribution list FN:Funky distribution list
MEMBER:mailto:subscriber1@example.com MEMBER:mailto:subscriber1@example.com
MEMBER:xmpp:subscriber2@example.com MEMBER:xmpp:subscriber2@example.com
MEMBER:sip:subscriber3@example.com MEMBER:sip:subscriber3@example.com
MEMBER:tel:+1-418-555-5555 MEMBER:tel:+1-418-555-5555
END:VCARD END:VCARD
6.6.6. RELATED 6.6.6. RELATED
Purpose: To specify a relationship between another person and the Purpose: To specify a relationship between another person and the
individual represented by this vCard. individual represented by this vCard.
Value type: A single URI. It can also be reset to a single text Value type: A single URI. It can also be reset to a single text
value. The text value can be used to specify textual information. value. The text value can be used to specify textual information.
Cardinality: (0,n) Cardinality: *
Special notes: The TYPE parameter MAY be used to characterize the Special notes: The TYPE parameter MAY be used to characterize the
related individual. The understood types are: related individual. Its value is as defined in [xfn].
* "parent" means that the related individual is the parent of the
individual this vCard represents.
* "child" means that the related individual is the child of the
individual this vCard represents. Note that the parent/child
relationship does not need to be biological.
* "sibling" means that the two individuals are siblings.
* "spouse" for a spouse, domestic partner, or similar relation.
* "family" for any other family relationship.
* "friend" for a friend.
* "supervisor" means that the related individual is the direct
hierarchical superior (i.e. supervisor or manager) of the
individual this vCard represents.
* "supervisee" means the opposite of "supervisor".
* "assistant" for an assistant or secretary.
* "colleague" for any other workplace relationship.
* "agent" for a person who may sometimes act on behalf of the
individual or resource associated with the vCard.
* "emergency" indicates an emergency contact.
Other types may be registered to IANA as described in
Section 10.2, and private extensions may be used.
ABNF: ABNF:
RELATED-param = RELATED-param-uri / RELATED-param-text RELATED-param = RELATED-param-uri / RELATED-param-text
RELATED-value = uri / text RELATED-value = uri / text
; Parameter and value MUST match. ; Parameter and value MUST match.
RELATED-param-uri = "VALUE=uri" RELATED-param-uri = "VALUE=uri"
RELATED-param-text = "VALUE=text" / language-param RELATED-param-text = "VALUE=text" / language-param
RELATED-param =/ pid-param / pref-param / altid-param / type-param RELATED-param =/ pid-param / pref-param / altid-param / type-param
/ any-param / any-param
type-param-related = "parent" / "child" / "sibling" / "spouse" type-param-related = xfn-value *(" " xfn-value)
/ "family" / "friend" / "supervisor"
/ "supervisee" / "assistant" / "colleague"
/ "agent" / "emergency" / iana-token / x-name
; type-param-related MUST NOT be used with a property other than ; type-param-related MUST NOT be used with a property other than
; RELATED. ; RELATED.
xfn-value = "contact" / "acquaintance" / "friend" / "met"
/ "co-worker" / "colleague" / "co-resident" / "neighbor"
/ "child" / "parent" / "sibling" / "spouse" / "kin"
/ "muse" / "crush" / "date" / "sweetheart" / "me"
Examples: Examples:
RELATED;TYPE=supervisor:urn:uuid:f81d4fae-7dec-11d0-a765-00a0c91e6bf6 RELATED;TYPE=friend:urn:uuid:f81d4fae-7dec-11d0-a765-00a0c91e6bf6
RELATED;TYPE=assistant:http://example.com/directory/jdoe.vcf RELATED;TYPE=contact:http://example.com/directory/jdoe.vcf
RELATED;TYPE=agent;VALUE=text:Please contact my assistant Jane Doe RELATED;TYPE=co-worker;VALUE=text:Please contact my assistant Jane
for any inquiries. Doe for any inquiries.
6.7. Explanatory Properties 6.7. Explanatory Properties
These properties are concerned with additional explanations, such as These properties are concerned with additional explanations, such as
that related to informational notes or revisions specific to the that related to informational notes or revisions specific to the
vCard. vCard.
6.7.1. CATEGORIES 6.7.1. CATEGORIES
Purpose: To specify application category information about the Purpose: To specify application category information about the
vCard. Also known as "tags". vCard. Also known as "tags".
Value type: One or more text values separated by a COMMA character Value type: One or more text values separated by a COMMA character
(ASCII decimal 44). (ASCII decimal 44).
Cardinality: (0,n) Cardinality: *
ABNF: ABNF:
CATEGORIES-param = "VALUE=text" / pid-param / pref-param CATEGORIES-param = "VALUE=text" / pid-param / pref-param
/ type-param / altid-param / any-param / type-param / altid-param / any-param
CATEGORIES-value = text-list CATEGORIES-value = text-list
Example: Example:
CATEGORIES:TRAVEL AGENT CATEGORIES:TRAVEL AGENT
CATEGORIES:INTERNET,IETF,INDUSTRY,INFORMATION TECHNOLOGY CATEGORIES:INTERNET,IETF,INDUSTRY,INFORMATION TECHNOLOGY
6.7.2. NOTE 6.7.2. NOTE
Purpose: To specify supplemental information or a comment that is Purpose: To specify supplemental information or a comment that is
associated with the vCard. associated with the vCard.
Value type: A single text value. Value type: A single text value.
Cardinality: (0,n) Cardinality: *
Special notes: The property is based on the X.520 Description Special notes: The property is based on the X.520 Description
attribute. attribute.
ABNF: ABNF:
NOTE-param = "VALUE=text" / language-param / pid-param / pref-param NOTE-param = "VALUE=text" / language-param / pid-param / pref-param
/ type-param / altid-param / any-param / type-param / altid-param / any-param
NOTE-value = text NOTE-value = text
skipping to change at page 48, line 23 skipping to change at page 43, line 12
NOTE:This fax number is operational 0800 to 1715 NOTE:This fax number is operational 0800 to 1715
EST\, Mon-Fri. EST\, Mon-Fri.
6.7.3. PRODID 6.7.3. PRODID
Purpose: To specify the identifier for the product that created the Purpose: To specify the identifier for the product that created the
vCard object. vCard object.
Type value: A single text value. Type value: A single text value.
Cardinality: (0,1) Cardinality: *1
Special notes: Implementations SHOULD use a method such as that Special notes: Implementations SHOULD use a method such as that
specified for Formal Public Identifiers in [ISO9070] or for specified for Formal Public Identifiers in [ISO9070] or for
Universal Resource Names in [RFC3406] to ensure that the text Universal Resource Names in [RFC3406] to ensure that the text
value is unique. value is unique.
ABNF: ABNF:
PRODID-param = "VALUE=text" / any-param PRODID-param = "VALUE=text" / any-param
PRODID-value = text PRODID-value = text
skipping to change at page 48, line 45 skipping to change at page 43, line 34
Example: Example:
PRODID:-//ONLINE DIRECTORY//NONSGML Version 1//EN PRODID:-//ONLINE DIRECTORY//NONSGML Version 1//EN
6.7.4. REV 6.7.4. REV
Purpose: To specify revision information about the current vCard. Purpose: To specify revision information about the current vCard.
Value type: A single timestamp value. Value type: A single timestamp value.
Cardinality: (0,1) Cardinality: *1
Special notes: The value distinguishes the current revision of the Special notes: The value distinguishes the current revision of the
information in this vCard for other renditions of the information. information in this vCard for other renditions of the information.
ABNF: ABNF:
REV-param = "VALUE=timestamp" / any-param REV-param = "VALUE=timestamp" / any-param
REV-value = timestamp REV-value = timestamp
Example: Example:
skipping to change at page 49, line 15 skipping to change at page 44, line 4
ABNF: ABNF:
REV-param = "VALUE=timestamp" / any-param REV-param = "VALUE=timestamp" / any-param
REV-value = timestamp REV-value = timestamp
Example: Example:
REV:19951031T222710Z REV:19951031T222710Z
6.7.5. SOUND 6.7.5. SOUND
Purpose: To specify a digital sound content information that Purpose: To specify a digital sound content information that
annotates some aspect of the vCard. This property is often used annotates some aspect of the vCard. This property is often used
to specify the proper pronunciation of the name property value of to specify the proper pronunciation of the name property value of
the vCard. the vCard.
Encoding: The encoding MUST be reset to "b" using the ENCODING Value type: A single URI.
parameter in order to specify inline, encoded binary data. If the
value is referenced by a URI value, then the default encoding of
8bit is used and no explicit ENCODING parameter is needed.
Value type: A single value. The default is binary value. It can
also be reset to uri value. The uri value can be used to specify
a value outside of this MIME entity.
Cardinality: (0,n)
Special notes: This property SHOULD include the parameter FMTTYPE to Cardinality: *
specify the audio format type. The FMTTYPE parameter value MUST
be an audio media type as specified in [RFC4288]. The full media
type name, including the "audio/" prefix, MUST be used. However,
implementations SHOULD be able to handle bare subtypes.
ABNF: ABNF:
SOUND-param = inline-param / refer-param SOUND-param = "VALUE=uri" / language-param / pid-param / pref-param
SOUND-value = inline-value / refer-value / type-param / altid-param / any-param
; Value and parameter MUST match. SOUND-value = uri
SOUND-param =/ language-param / pid-param / pref-param / type-param
/ altid-param / any-param
Example: Example:
SOUND;FMTTYPE=audio/basic;VALUE=uri:CID:JOHNQPUBLIC.part8. SOUND:CID:JOHNQPUBLIC.part8.19960229T080000.xyzMail@example.com
19960229T080000.xyzMail@example.com
SOUND;FMTTYPE=audio/basic;ENCODING=b:MIICajCCAdOgAwIBAgICBEUwDQ SOUND:data:audio/basic;base64,MIICajCCAdOgAwIBAgICBEUwDQYJKoZIh
YJKAQEEBQAwdzELMAkGA1UEBhMCVVMxLDAqBgNVBAoTI05ldHNjYXBlIENvbW1 AQEEBQAwdzELMAkGA1UEBhMCVVMxLDAqBgNVBAoTI05ldHNjYXBlIENvbW11bm
1bmljYXRpb25zIENvcnBvcmF0aW9uMRwwGgYDVQQLExNJbmZvcm1hdGlvbiBTe ljYXRpb25zIENvcnBvcmF0aW9uMRwwGgYDVQQLExNJbmZvcm1hdGlvbiBTeXN0
<...the remainder of "B" encoded binary data...> <...the remainder of base64-encoded data...>
6.7.6. UID 6.7.6. UID
Purpose: To specify a value that represents a globally unique Purpose: To specify a value that represents a globally unique
identifier corresponding to the individual or resource associated identifier corresponding to the individual or resource associated
with the vCard. with the vCard.
Value type: A single URI value. Value type: A single URI value.
Cardinality: (0,1) Cardinality: *1
Special notes: This property is used to uniquely identify the object Special notes: This property is used to uniquely identify the object
that the vCard represents. The "uuid" URN namespace defined in that the vCard represents. The "uuid" URN namespace defined in
[RFC4122] is particularly well-suited to this task, but other URI [RFC4122] is particularly well-suited to this task, but other URI
schemes MAY be used. schemes MAY be used.
ABNF: ABNF:
UID-param = "VALUE=uri" / any-param UID-param = "VALUE=uri" / any-param
UID-value = uri UID-value = uri
skipping to change at page 50, line 47 skipping to change at page 45, line 15
6.7.7. CLIENTPIDMAP 6.7.7. CLIENTPIDMAP
Purpose: To give a global meaning to a local PID source identifier. Purpose: To give a global meaning to a local PID source identifier.
Value type: A semicolon-separated pair of values. The first field Value type: A semicolon-separated pair of values. The first field
is a small integer corresponding to the second field of a PID is a small integer corresponding to the second field of a PID
parameter instance. The second field is a URI. The "uuid" URN parameter instance. The second field is a URI. The "uuid" URN
namespace defined in [RFC4122] is particularly well-suited to this namespace defined in [RFC4122] is particularly well-suited to this
task, but other URI schemes MAY be used. task, but other URI schemes MAY be used.
Cardinality: (0,n) Cardinality: *
Special notes: PID source identifiers (the source identifier is the Special notes: PID source identifiers (the source identifier is the
second field in a PID parameter instance) are small integers that second field in a PID parameter instance) are small integers that
only have significance within the scope of a single vCard only have significance within the scope of a single vCard
instance. Each distinct source identifier present in a vCard MUST instance. Each distinct source identifier present in a vCard MUST
have an associated CLIENTPIDMAP. See Section 7 for more details have an associated CLIENTPIDMAP. See Section 7 for more details
on the usage of CLIENTPIDMAP. on the usage of CLIENTPIDMAP.
PID source identifiers MUST be strictly positive. Zero is not PID source identifiers MUST be strictly positive. Zero is not
allowed. allowed.
skipping to change at page 51, line 20 skipping to change at page 45, line 37
As a special exception, the PID parameter MUST NOT be applied to As a special exception, the PID parameter MUST NOT be applied to
this property. this property.
ABNF: ABNF:
CLIENTPIDMAP-param = any-param CLIENTPIDMAP-param = any-param
CLIENTPIDMAP-value = 1*DIGIT ";" uri CLIENTPIDMAP-value = 1*DIGIT ";" uri
Example: Example:
TEL;PID=3.1,4.2:tel:+1-555-555-5555 TEL;PID=3.1,4.2;VALUE=uri:tel:+1-555-555-5555
EMAIL;PID=4.1,5.2:jdoe@example.com EMAIL;PID=4.1,5.2:jdoe@example.com
CLIENTPIDMAP:1;urn:uuid:3df403f4-5924-4bb7-b077-3c711d9eb34b CLIENTPIDMAP:1;urn:uuid:3df403f4-5924-4bb7-b077-3c711d9eb34b
CLIENTPIDMAP:2;urn:uuid:d89c9c7a-2e1b-4832-82de-7e992d95faa5 CLIENTPIDMAP:2;urn:uuid:d89c9c7a-2e1b-4832-82de-7e992d95faa5
6.7.8. URL 6.7.8. URL
Purpose: To specify a uniform resource locator associated with the Purpose: To specify a uniform resource locator associated with the
object that the vCard refers to. Examples for individuals include object that the vCard refers to. Examples for individuals include
personal web sites, blogs, and social networking site identifiers. personal web sites, blogs, and social networking site identifiers.
Cardinality: (0,n) Cardinality: *
Value type: A single uri value. Value type: A single uri value.
ABNF: ABNF:
URL-param = "VALUE=uri" / pid-param / pref-param / type-param URL-param = "VALUE=uri" / pid-param / pref-param / type-param
/ altid-param / any-param / altid-param / any-param
URL-value = uri URL-value = uri
Example: Example:
URL:http://example.org/restaurant.french/~chezchic.html URL:http://example.org/restaurant.french/~chezchic.html
6.7.9. VERSION 6.7.9. VERSION
Purpose: To specify the version of the vCard specification used to Purpose: To specify the version of the vCard specification used to
format this vCard. format this vCard.
Value type: A single text value. Value type: A single text value.
Cardinality: (1,1) Cardinality: 1
Special notes: This property MUST be present in the vCard object, Special notes: This property MUST be present in the vCard object,
and it must come first. The value MUST be "4.0" if the vCard and it must come first. The value MUST be "4.0" if the vCard
corresponds to this specification. Note that earlier versions of corresponds to this specification. Note that earlier versions of
vCard allowed this property to be placed anywehre in the vCard vCard allowed this property to be placed anywehre in the vCard
object, or even to be absent. object, or even to be absent.
ABNF: ABNF:
VERSION-param = "VALUE=text" / any-param VERSION-param = "VALUE=text" / any-param
skipping to change at page 52, line 29 skipping to change at page 46, line 45
Example: Example:
VERSION:4.0 VERSION:4.0
6.8. Security Properties 6.8. Security Properties
These properties are concerned with the security of communication These properties are concerned with the security of communication
pathways or access to the vCard. pathways or access to the vCard.
6.8.1. CLASS 6.8.1. KEY
Purpose: To specify the access classification for a vCard object.
Value type: A single text value.
Cardinality: (0,1)
Special notes: An access classification is only one component of the
general security model for a directory service. The
classification attribute provides a method of capturing the intent
of the owner for general access to information described by the
vCard object.
Predefined values are:
PUBLIC: This vCard MAY be shared with anyone.
PRIVATE: This vCard MUST NOT be shared. It MAY be exported if
explictly authorized and requested by the creator.
CONFIDENTIAL: This vCard MAY be shared with allowed users or
systems. The exact confidentiality level is site-specific and
out of scope for the vCard specification.
ABNF:
CLASS-param = "VALUE=text" / any-param
CLASS-value = "PUBLIC" / "PRIVATE" / "CONFIDENTIAL" / iana-token
/ x-name
Examples:
CLASS:PUBLIC
CLASS:PRIVATE
CLASS:CONFIDENTIAL
6.8.2. KEY
Purpose: To specify a public key or authentication certificate Purpose: To specify a public key or authentication certificate
associated with the object that the vCard represents. associated with the object that the vCard represents.
Encoding: The encoding MUST be reset to "b" using the ENCODING Value type: A single URI. It can also be reset to a text value.
parameter in order to specify inline, encoded binary data.
Value type: A single value. The default is binary. It can also be
reset to a text or uri value. A uri value can be used to specify
an external value.
Cardinality: (0,n)
Special notes: This property SHOULD include the parameter FMTTYPE to Cardinality: *
specify the public key or authentication certificate format. The
FMTTYPE parameter value MUST be a media type as specified in
[RFC4288].
ABNF: ABNF:
KEY-param = inline-param / refer-param / KEY-text-param KEY-param = KEY-uri-param / KEY-text-param
KEY-value = inline-value / refer-value / KEY-text-value KEY-value = KEY-uri-value / KEY-text-value
; Value and parameter MUST match. ; Value and parameter MUST match.
KEY-uri-param = "VALUE=uri"
KEY-uri-value = uri
KEY-text-param = "VALUE=text" KEY-text-param = "VALUE=text"
KEY-text-value = text KEY-text-value = text
KEY-param =/ altid-param / pid-param / pref-param / type-param KEY-param =/ altid-param / pid-param / pref-param / type-param
/ any-param / any-param
Examples: Examples:
KEY;VALUE=uri:http://www.example.com/keys/jdoe KEY:http://www.example.com/keys/jdoe
KEY;FMTTYPE=application/pgp-keys;ENCODING=b:mQGiBEbEPUsRBACBF0R KEY:data:application/pgp-keys;base64,MIICajCCAdOgAwIBAgICBE
SINmGutdM+KSAl7HMzwXHaLbvEOyu8At80I8qGejhzWowKbfem3X0m68Y/vhb+ UwDQYJKoZIhvcNAQEEBQAwdzELMAkGA1UEBhMCVVMxLDAqBgNVBAoTI05l
J2g7q11KHpnEdNb67uZaj9nTQ09Q+UFtH25qD/Afn3+9bOJQaPjAUYzXu3vD/x <... remainder of base64-encoded data ...>
<...remainder of "B" encoded binary data...>
6.9. Calendar Properties 6.9. Calendar Properties
These properties are further specified in [RFC2739]. These properties are further specified in [RFC2739].
6.9.1. FBURL 6.9.1. FBURL
Purpose: To specify the URI for the busy time associated with the Purpose: To specify the URI for the busy time associated with the
object that the vCard represents. object that the vCard represents.
Value type: A single URI value. Value type: A single URI value.
Cardinality: (0,n) Cardinality: *
Special notes: Where multiple FBURL properties are specified, the Special notes: Where multiple FBURL properties are specified, the
default FBURL property is indicated with the PREF parameter. The default FBURL property is indicated with the PREF parameter. The
FTP or HTTP type of URI points to an iCalendar [RFC5545] object FTP or HTTP type of URI points to an iCalendar [RFC5545] object
associated with a snapshot of the next few weeks or months of busy associated with a snapshot of the next few weeks or months of busy
time data. If the iCalendar object is represented as a file or time data. If the iCalendar object is represented as a file or
document, its file type should be "ifb". document, its file type should be "ifb".
ABNF: ABNF:
skipping to change at page 55, line 7 skipping to change at page 48, line 24
FBURL:FTP://ftp.example.com/busy/project-a.ifb FBURL:FTP://ftp.example.com/busy/project-a.ifb
6.9.2. CALADRURI 6.9.2. CALADRURI
Purpose: To specify the calendar user address [RFC5545] to which a Purpose: To specify the calendar user address [RFC5545] to which a
scheduling request [RFC5546] should be sent for the object scheduling request [RFC5546] should be sent for the object
represented by the vCard. represented by the vCard.
Value type: A single URI value. Value type: A single URI value.
Cardinality: (0,n) Cardinality: *
Special notes: Where multiple CALADRURI properties are specified, Special notes: Where multiple CALADRURI properties are specified,
the default CALADRURI property is indicated with the PREF the default CALADRURI property is indicated with the PREF
parameter. parameter.
ABNF: ABNF:
CALADRURI-param = "VALUE=uri" / pid-param / pref-param / type-param CALADRURI-param = "VALUE=uri" / pid-param / pref-param / type-param
/ altid-param / any-param / altid-param / any-param
CALADRURI-value = uri CALADRURI-value = uri
skipping to change at page 55, line 31 skipping to change at page 48, line 48
CALADRURI;PREF=1:mailto:janedoe@example.com CALADRURI;PREF=1:mailto:janedoe@example.com
CALADRURI:http://example.com/calendar/jdoe CALADRURI:http://example.com/calendar/jdoe
6.9.3. CALURI 6.9.3. CALURI
Purpose: To specify the URI for a calendar associated with the Purpose: To specify the URI for a calendar associated with the
object represented by the vCard. object represented by the vCard.
Value type: A single URI value. Value type: A single URI value.
Cardinality: (0,n) Cardinality: *
Special notes: Where multiple CALURI properties are specified, the Special notes: Where multiple CALURI properties are specified, the
default CALURI property is indicated with the PREF parameter. The default CALURI property is indicated with the PREF parameter. The
property should contain a URI pointing to an iCalendar [RFC5545] property should contain a URI pointing to an iCalendar [RFC5545]
object associated with a snapshot of the user's calendar store. object associated with a snapshot of the user's calendar store.
If the iCalendar object is represented as a file or document, its If the iCalendar object is represented as a file or document, its
file type should be "ics". file type should be "ics".
ABNF: ABNF:
CALURI-param = "VALUE=uri" / pid-param / pref-param / type-param CALURI-param = "VALUE=uri" / pid-param / pref-param / type-param
skipping to change at page 58, line 9 skipping to change at page 51, line 32
7.2. Example 7.2. Example
7.2.1. Creation 7.2.1. Creation
The following simple vCard is first created on a given device. The following simple vCard is first created on a given device.
BEGIN:VCARD BEGIN:VCARD
VERSION:4.0 VERSION:4.0
UID:urn:uuid:4fbe8971-0bc3-424c-9c26-36c3e1eff6b1 UID:urn:uuid:4fbe8971-0bc3-424c-9c26-36c3e1eff6b1
FN;PID=1.1:J. Doe FN;PID=1.1:J. Doe
N:Doe;J.;; N:Doe;J.;;;
EMAIL;PID=1.1:jdoe@example.com EMAIL;PID=1.1:jdoe@example.com
CLIENTPIDMAP:1;urn:uuid:53e374d9-337e-4727-8803-a1e9c14e0556 CLIENTPIDMAP:1;urn:uuid:53e374d9-337e-4727-8803-a1e9c14e0556
END:VCARD END:VCARD
This new vCard is assigned the UID This new vCard is assigned the UID
"urn:uuid:4fbe8971-0bc3-424c-9c26-36c3e1eff6b1" by the creating "urn:uuid:4fbe8971-0bc3-424c-9c26-36c3e1eff6b1" by the creating
device. The FN and EMAIL properties are assigned the same local device. The FN and EMAIL properties are assigned the same local
value of 1, and this value is given global context by associating it value of 1, and this value is given global context by associating it
with "urn:uuid:53e374d9-337e-4727-8803-a1e9c14e0556", which with "urn:uuid:53e374d9-337e-4727-8803-a1e9c14e0556", which
represents the creating device. We are at liberty to reuse the same represents the creating device. We are at liberty to reuse the same
skipping to change at page 58, line 41 skipping to change at page 52, line 15
7.2.3. Adding and Sharing a Property 7.2.3. Adding and Sharing a Property
A new phone number is created on the first device, then the vCard is A new phone number is created on the first device, then the vCard is
shared with the second device. This is what the second device shared with the second device. This is what the second device
receives: receives:
BEGIN:VCARD BEGIN:VCARD
VERSION:4.0 VERSION:4.0
UID:urn:uuid:4fbe8971-0bc3-424c-9c26-36c3e1eff6b1 UID:urn:uuid:4fbe8971-0bc3-424c-9c26-36c3e1eff6b1
FN;PID=1.1:J. Doe FN;PID=1.1:J. Doe
N:Doe;J.;; N:Doe;J.;;;
EMAIL;PID=1.1:jdoe@example.com EMAIL;PID=1.1:jdoe@example.com
TEL;PID=1.1:tel:+1-555-555-5555 TEL;PID=1.1;VALUE=uri:tel:+1-555-555-5555
CLIENTPIDMAP:1;urn:uuid:53e374d9-337e-4727-8803-a1e9c14e0556 CLIENTPIDMAP:1;urn:uuid:53e374d9-337e-4727-8803-a1e9c14e0556
END:VCARD END:VCARD
Upon inspecting the UID property, the second device matches the vCard Upon inspecting the UID property, the second device matches the vCard
it received to the vCard that it already has stored. It then starts it received to the vCard that it already has stored. It then starts
comparing the properties of the two vCards in same-named pairs. comparing the properties of the two vCards in same-named pairs.
The FN properties are matched because the PID parameters have the The FN properties are matched because the PID parameters have the
same global value. Since the property value is the same, no update same global value. Since the property value is the same, no update
takes place. takes place.
skipping to change at page 60, line 9 skipping to change at page 53, line 9
7.2.4. Simultaneous Editing 7.2.4. Simultaneous Editing
A new email address and a new phone number are added to the vCard on A new email address and a new phone number are added to the vCard on
each of the two devices, and then a new synchronization event each of the two devices, and then a new synchronization event
happens. Here are the vCards that are communicated to each other: happens. Here are the vCards that are communicated to each other:
BEGIN:VCARD BEGIN:VCARD
VERSION:4.0 VERSION:4.0
UID:urn:uuid:4fbe8971-0bc3-424c-9c26-36c3e1eff6b1 UID:urn:uuid:4fbe8971-0bc3-424c-9c26-36c3e1eff6b1
FN;PID=1.1:J. Doe FN;PID=1.1:J. Doe
N:Doe;J.;; N:Doe;J.;;;
EMAIL;PID=1.1:jdoe@example.com EMAIL;PID=1.1:jdoe@example.com
EMAIL;PID=2.1:boss@example.com EMAIL;PID=2.1:boss@example.com
TEL;PID=1.1:tel:+1-555-555-5555 TEL;PID=1.1;VALUE=uri:tel:+1-555-555-5555
TEL;PID=2.1:tel:+1-666-666-6666 TEL;PID=2.1;VALUE=uri:tel:+1-666-666-6666
CLIENTPIDMAP:1;urn:uuid:53e374d9-337e-4727-8803-a1e9c14e0556 CLIENTPIDMAP:1;urn:uuid:53e374d9-337e-4727-8803-a1e9c14e0556
END:VCARD END:VCARD
BEGIN:VCARD BEGIN:VCARD
VERSION:4.0 VERSION:4.0
UID:urn:uuid:4fbe8971-0bc3-424c-9c26-36c3e1eff6b1 UID:urn:uuid:4fbe8971-0bc3-424c-9c26-36c3e1eff6b1
FN;PID=1.1:J. Doe FN;PID=1.1:J. Doe
N:Doe;J.;; N:Doe;J.;;;
EMAIL;PID=1.1:jdoe@example.com EMAIL;PID=1.1:jdoe@example.com
EMAIL;PID=2.2:ceo@example.com EMAIL;PID=2.2:ceo@example.com
TEL;PID=1.1:tel:+1-555-555-5555 TEL;PID=1.1;VALUE=uri:tel:+1-555-555-5555
TEL;PID=2.2:tel:+1-666-666-6666 TEL;PID=2.2;VALUE=uri:tel:+1-666-666-6666
CLIENTPIDMAP:1;urn:uuid:53e374d9-337e-4727-8803-a1e9c14e0556 CLIENTPIDMAP:1;urn:uuid:53e374d9-337e-4727-8803-a1e9c14e0556
CLIENTPIDMAP:2;urn:uuid:1f762d2b-03c4-4a83-9a03-75ff658a6eee CLIENTPIDMAP:2;urn:uuid:1f762d2b-03c4-4a83-9a03-75ff658a6eee
END:VCARD END:VCARD
On the first device, the same PID source identifier (1) is reused for On the first device, the same PID source identifier (1) is reused for
the new EMAIL and TEL properties. On the second device, a new source the new EMAIL and TEL properties. On the second device, a new source
identifier (2) is generated, and a corresponding CLIENTPIDMAP identifier (2) is generated, and a corresponding CLIENTPIDMAP
property is created. It contains the second device's identifier, property is created. It contains the second device's identifier,
"urn:uuid:1f762d2b-03c4-4a83-9a03-75ff658a6eee". "urn:uuid:1f762d2b-03c4-4a83-9a03-75ff658a6eee".
skipping to change at page 61, line 9 skipping to change at page 54, line 9
discretion of the synchronization engine. Therefore, the two discretion of the synchronization engine. Therefore, the two
properties are merged. properties are merged.
All this results in the following vCard which is stored on both All this results in the following vCard which is stored on both
devices: devices:
BEGIN:VCARD BEGIN:VCARD
VERSION:4.0 VERSION:4.0
UID:urn:uuid:4fbe8971-0bc3-424c-9c26-36c3e1eff6b1 UID:urn:uuid:4fbe8971-0bc3-424c-9c26-36c3e1eff6b1
FN:J. Doe FN:J. Doe
N:Doe;J.;; N:Doe;J.;;;
EMAIL;PID=1.1:jdoe@example.com EMAIL;PID=1.1:jdoe@example.com
EMAIL;PID=2.1:boss@example.com EMAIL;PID=2.1:boss@example.com
EMAIL;PID=2.2:ceo@example.com EMAIL;PID=2.2:ceo@example.com
TEL;PID=1.1:tel:+1-555-555-5555 TEL;PID=1.1;VALUE=uri:tel:+1-555-555-5555
TEL;PID=2.1,2.2:tel:+1-666-666-6666 TEL;PID=2.1,2.2;VALUE=uri:tel:+1-666-666-6666
CLIENTPIDMAP:1;urn:uuid:53e374d9-337e-4727-8803-a1e9c14e0556 CLIENTPIDMAP:1;urn:uuid:53e374d9-337e-4727-8803-a1e9c14e0556
CLIENTPIDMAP:2;urn:uuid:1f762d2b-03c4-4a83-9a03-75ff658a6eee CLIENTPIDMAP:2;urn:uuid:1f762d2b-03c4-4a83-9a03-75ff658a6eee
END:VCARD END:VCARD
7.2.5. Global Context Simplification 7.2.5. Global Context Simplification
The two devices finish their synchronization procedure by simplifying The two devices finish their synchronization procedure by simplifying
their global contexts. Since they haven't talked to any other their global contexts. Since they haven't talked to any other
device, the following vCard is for all purposes equivalent to the device, the following vCard is for all purposes equivalent to the
above. It is also shorter. above. It is also shorter.
BEGIN:VCARD BEGIN:VCARD
VERSION:4.0 VERSION:4.0
UID:urn:uuid:4fbe8971-0bc3-424c-9c26-36c3e1eff6b1 UID:urn:uuid:4fbe8971-0bc3-424c-9c26-36c3e1eff6b1
FN:J. Doe FN:J. Doe
N:Doe;J.;; N:Doe;J.;;;
EMAIL;PID=1.1:jdoe@example.com EMAIL;PID=1.1:jdoe@example.com
EMAIL;PID=2.1:boss@example.com EMAIL;PID=2.1:boss@example.com
EMAIL;PID=3.1:ceo@example.com EMAIL;PID=3.1:ceo@example.com
TEL;PID=1.1:tel:+1-555-555-5555 TEL;PID=1.1;VALUE=uri:tel:+1-555-555-5555
TEL;PID=2.1:tel:+1-666-666-6666 TEL;PID=2.1;VALUE=uri:tel:+1-666-666-6666
CLIENTPIDMAP:1;urn:uuid:53e374d9-337e-4727-8803-a1e9c14e0556 CLIENTPIDMAP:1;urn:uuid:53e374d9-337e-4727-8803-a1e9c14e0556
END:VCARD END:VCARD
The details of global context simplification are unspecified by this The details of global context simplification are unspecified by this
document. They are left up to the synchronization engine. This document. They are left up to the synchronization engine. This
example is merely intended to illustrate the possibility, which example is merely intended to illustrate the possibility, which
investigating would be, in the authors' opinion, worthwhile. investigating would be, in the authors' opinion, worthwhile.
8. Example: Authors' vCards 8. Example: Authors' vCards
BEGIN:VCARD BEGIN:VCARD
VERSION:4.0 VERSION:4.0
FN:Simon Perreault FN:Simon Perreault
N:Perreault;Simon;;ing. jr,M.Sc. N:Perreault;Simon;;;ing. jr,M.Sc.
BDAY:--0203 BDAY:--0203
ANNIVERSARY:20090808T1430-0500 ANNIVERSARY:20090808T1430-0500
SEX:1 GENDER:male
LANG;PREF=1:fr LANG;PREF=1:fr
LANG;PREF=2:en LANG;PREF=2:en
ORG;TYPE=work:Viagenie ORG;TYPE=work:Viagenie
ADR;TYPE=work:;Suite D2-630;2875 Laurier; ADR;TYPE=work:;Suite D2-630;2875 Laurier;
Quebec;QC;G1V 2M2;Canada Quebec;QC;G1V 2M2;Canada
TEL;TYPE=work,voice;PREF=1:tel:+1-418-656-9254;ext=102 TEL;VALUE=uri;TYPE=work,voice;PREF=1:tel:+1-418-656-9254;ext=102
TEL;TYPE=work,cell,voice,video,text:tel:+1-418-262-6501 TEL;VALUE=uri;TYPE=work,cell,voice,video,text:tel:+1-418-262-6501
TEL;TYPE=work,fax:tel:+1-418-656-9257
EMAIL;TYPE=work:simon.perreault@viagenie.ca EMAIL;TYPE=work:simon.perreault@viagenie.ca
GEO;TYPE=work:geo:46.772673,-71.282945 GEO;TYPE=work:geo:46.772673,-71.282945
KEY;TYPE=work;VALUE=uri: KEY;TYPE=work;VALUE=uri:
http://www.viagenie.ca/simon.perreault/simon.asc http://www.viagenie.ca/simon.perreault/simon.asc
TZ:-0500 TZ:-0500
CLASS:PUBLIC
END:VCARD END:VCARD
BEGIN:VCARD BEGIN:VCARD
VERSION:4.0 VERSION:4.0
FN:Pete Resnick FN:Pete Resnick
N:Resnick;Pete;; N:Resnick;Pete;;;
SEX:1 GENDER:male
ORG;TYPE=work:QUALCOMM Incorporated ORG;TYPE=work:QUALCOMM Incorporated
ADR;TYPE=work:;;5775 Morehouse Drive;San Diego;CA;92121-1714;US ADR;TYPE=work:;;5775 Morehouse Drive;San Diego;CA;92121-1714;US
TEL;TYPE=work,voice:tel:+1-858-651-4478 TEL;VALUE=uri;TYPE=work,voice:tel:+1-858-651-4478
EMAIL;TYPE=work:presnick@qualcomm.com EMAIL;TYPE=work:presnick@qualcomm.com
URL;TYPE=work:http://www.qualcomm.com/~presnick/ URL;TYPE=work:http://www.qualcomm.com/~presnick/
END:VCARD END:VCARD
9. Security Considerations 9. Security Considerations
o Internet mail is often used to transport vCards and is subject to o Internet mail is often used to transport vCards and is subject to
many well known security attacks, including monitoring, replay, many well known security attacks, including monitoring, replay,
and forgery. Care should be taken by any directory service in and forgery. Care should be taken by any directory service in
allowing information to leave the scope of the service itself, allowing information to leave the scope of the service itself,
where any access controls can no longer be guaranteed. where any access controls can no longer be guaranteed.
Applications should also take care to display directory data in a Applications should also take care to display directory data in a
"safe" environment (e.g., PostScript-valued types). "safe" environment (e.g., PostScript-valued types).
o vCards can carry cryptographic keys or certificates, as described o vCards can carry cryptographic keys or certificates, as described
in Section 6.8.2. in Section 6.8.1.
o Section 6.8.1 specifies a desired security classification policy
for a particular vCard. That policy is not enforced in any way.
o The vCard objects have no inherent authentication or privacy, but o The vCard objects have no inherent authentication or privacy, but
can easily be carried by any security mechanism that transfers can easily be carried by any security mechanism that transfers
MIME objects with authentication or privacy. In cases where the MIME objects with authentication or privacy. In cases where the
threat of "spoofed" vCard information is a concern, the vCard threat of "spoofed" vCard information is a concern, the vCard
SHOULD BE transported using one of these secure mechanisms. SHOULD BE transported using one of these secure mechanisms.
o The information in a vCard may become out of date. In cases where o The information in a vCard may become out of date. In cases where
the vitality of data is important to an originator of a vCard, the the vitality of data is important to an originator of a vCard, the
SOURCE property (Section 6.1.3) SHOULD be specified. In addition, SOURCE property (Section 6.1.3) SHOULD be specified. In addition,
skipping to change at page 64, line 23 skipping to change at page 57, line 15
In addition, the following media types are known to have been used In addition, the following media types are known to have been used
to refer to vCard data. They should be considered deprecated in to refer to vCard data. They should be considered deprecated in
favor of text/vcard. favor of text/vcard.
* text/directory * text/directory
* text/directory; profile=vcard * text/directory; profile=vcard
* text/x-vcard * text/x-vcard
Published specification: draft-ietf-vcarddav-vcardrev-14 Published specification: draft-ietf-vcarddav-vcardrev-15
Applications that use this media type: They are numerous, diverse, Applications that use this media type: They are numerous, diverse,
and include mail user agents, instant messaging clients, address and include mail user agents, instant messaging clients, address
book applications, directory servers, customer relationship book applications, directory servers, customer relationship
management software. management software.
Additional information: Additional information:
Magic number(s): Magic number(s):
skipping to change at page 68, line 11 skipping to change at page 60, line 47
Conformance: The vCard properties and/or parameters that can take Conformance: The vCard properties and/or parameters that can take
this value needs to be specified. this value needs to be specified.
Example(s): One or more examples of instances of the value needs to Example(s): One or more examples of instances of the value needs to
be specified. be specified.
The following is a fictitious example of a registration of a vCard The following is a fictitious example of a registration of a vCard
value: value:
Value: NOINDEX Value: hermaphrodite
Purpose: This value is used to warn other services not to "crawl" Purpose: This value is a combination of the "male" and "female"
this vCard for searching. values.
Conformance: This value can be used with the "CLASS" property. Conformance: This value can be used with the "GENDER" property.
Example(s): The following is an example of this value used with the Example(s): The following is an example of this value used with the
"CLASS" property: "GENDER" property:
CLASS:NOINDEX GENDER:hermaphrodite
10.3. Initial vCard Elements Registries 10.3. Initial vCard Elements Registries
The IANA is requested to create and maintain the following registries The IANA is requested to create and maintain the following registries
for vCard elements with pointers to appropriate reference documents. for vCard elements with pointers to appropriate reference documents.
10.3.1. Properties Registry 10.3.1. Properties Registry
The following table is to be used to initialize the properties The following table is to be used to initialize the properties
registry. registry.
+-----------+--------------+---------+-------------------------+ +-----------+--------------+---------+------------------------+
| Namespace | Property | Status | Reference | | Namespace | Property | Status | Reference |
+-----------+--------------+---------+-------------------------+ +-----------+--------------+---------+------------------------+
| | SOURCE | Current | RFCXXXX, Section 6.1.3 | | | SOURCE | Current | RFCXXXX, Section 6.1.3 |
| | KIND | Current | RFCXXXX, Section 6.1.4 | | | KIND | Current | RFCXXXX, Section 6.1.4 |
| | XML | Current | RFCXXXX, Section 6.1.5 | | | XML | Current | RFCXXXX, Section 6.1.5 |
| | FN | Current | RFCXXXX, Section 6.2.1 | | | FN | Current | RFCXXXX, Section 6.2.1 |
| | N | Current | RFCXXXX, Section 6.2.2 | | | N | Current | RFCXXXX, Section 6.2.2 |
| | NICKNAME | Current | RFCXXXX, Section 6.2.3 | | | NICKNAME | Current | RFCXXXX, Section 6.2.3 |
| | PHOTO | Current | RFCXXXX, Section 6.2.4 | | | PHOTO | Current | RFCXXXX, Section 6.2.4 |
| | BDAY | Current | RFCXXXX, Section 6.2.5 | | | BDAY | Current | RFCXXXX, Section 6.2.5 |
| | DDAY | Current | RFCXXXX, Section 6.2.6 | | | ANNIVERSARY | Current | RFCXXXX, Section 6.2.6 |
| | BIRTH | Current | RFCXXXX, Section 6.2.7 | | | GENDER | Current | RFCXXXX, Section 6.2.7 |
| | DEATH | Current | RFCXXXX, Section 6.2.8 | | | ADR | Current | RFCXXXX, Section 6.3.1 |
| | ANNIVERSARY | Current | RFCXXXX, Section 6.2.9 | | | TEL | Current | RFCXXXX, Section 6.4.1 |
| | SEX | Current | RFCXXXX, Section 6.2.10 | | | EMAIL | Current | RFCXXXX, Section 6.4.2 |
| | ADR | Current | RFCXXXX, Section 6.3.1 | | | IMPP | Current | RFCXXXX, Section 6.4.3 |
| | LABEL | Current | RFCXXXX, Section 6.3.2 | | | LANG | Current | RFCXXXX, Section 6.4.4 |
| | TEL | Current | RFCXXXX, Section 6.4.1 | | | TZ | Current | RFCXXXX, Section 6.5.1 |
| | EMAIL | Current | RFCXXXX, Section 6.4.2 | | | GEO | Current | RFCXXXX, Section 6.5.2 |
| | IMPP | Current | RFCXXXX, Section 6.4.3 | | | TITLE | Current | RFCXXXX, Section 6.6.1 |
| | LANG | Current | RFCXXXX, Section 6.4.4 | | | ROLE | Current | RFCXXXX, Section 6.6.2 |
| | TZ | Current | RFCXXXX, Section 6.5.1 | | | LOGO | Current | RFCXXXX, Section 6.6.3 |
| | GEO | Current | RFCXXXX, Section 6.5.2 | | | ORG | Current | RFCXXXX, Section 6.6.4 |
| | TITLE | Current | RFCXXXX, Section 6.6.1 | | | MEMBER | Current | RFCXXXX, Section 6.6.5 |
| | ROLE | Current | RFCXXXX, Section 6.6.2 | | | RELATED | Current | RFCXXXX, Section 6.6.6 |
| | LOGO | Current | RFCXXXX, Section 6.6.3 | | | CATEGORIES | Current | RFCXXXX, Section 6.7.1 |
| | ORG | Current | RFCXXXX, Section 6.6.4 | | | NOTE | Current | RFCXXXX, Section 6.7.2 |
| | MEMBER | Current | RFCXXXX, Section 6.6.5 | | | PRODID | Current | RFCXXXX, Section 6.7.3 |
| | RELATED | Current | RFCXXXX, Section 6.6.6 | | | REV | Current | RFCXXXX, Section 6.7.4 |
| | CATEGORIES | Current | RFCXXXX, Section 6.7.1 | | | SOUND | Current | RFCXXXX, Section 6.7.5 |
| | NOTE | Current | RFCXXXX, Section 6.7.2 | | | UID | Current | RFCXXXX, Section 6.7.6 |
| | PRODID | Current | RFCXXXX, Section 6.7.3 | | | CLIENTPIDMAP | Current | RFCXXXX, Section 6.7.7 |
| | REV | Current | RFCXXXX, Section 6.7.4 | | | URL | Current | RFCXXXX, Section 6.7.8 |
| | SOUND | Current | RFCXXXX, Section 6.7.5 | | | VERSION | Current | RFCXXXX, Section 6.7.9 |
| | UID | Current | RFCXXXX, Section 6.7.6 | | | KEY | Current | RFCXXXX, Section 6.8.1 |
| | CLIENTPIDMAP | Current | RFCXXXX, Section 6.7.7 | | | FBURL | Current | RFCXXXX, Section 6.9.1 |
| | URL | Current | RFCXXXX, Section 6.7.8 | | | CALADRURI | Current | RFCXXXX, Section 6.9.2 |
| | VERSION | Current | RFCXXXX, Section 6.7.9 | | | CALURI | Current | RFCXXXX, Section 6.9.3 |
| | CLASS | Current | RFCXXXX, Section 6.8.1 | +-----------+--------------+---------+------------------------+
| | KEY | Current | RFCXXXX, Section 6.8.2 |
| | FBURL | Current | RFCXXXX, Section 6.9.1 |
| | CALADRURI | Current | RFCXXXX, Section 6.9.2 |
| | CALURI | Current | RFCXXXX, Section 6.9.3 |
+-----------+--------------+---------+-------------------------+
10.3.2. Parameters Registry 10.3.2. Parameters Registry
The following table is to be used to initialize the parameters The following table is to be used to initialize the parameters
registry. registry.
+-----------+-----------+---------+-----------------------+ +-----------+-----------+---------+-----------------------+
| Namespace | Parameter | Status | Reference | | Namespace | Parameter | Status | Reference |
+-----------+-----------+---------+-----------------------+ +-----------+-----------+---------+-----------------------+
| | LANGUAGE | Current | RFCXXXX, Section 5.1 | | | LANGUAGE | Current | RFCXXXX, Section 5.1 |
| | ENCODING | Current | RFCXXXX, Section 5.2 | | | VALUE | Current | RFCXXXX, Section 5.2 |
| | VALUE | Current | RFCXXXX, Section 5.3 | | | PREF | Current | RFCXXXX, Section 5.3 |
| | PREF | Current | RFCXXXX, Section 5.4 | | | ALTID | Current | RFCXXXX, Section 5.4 |
| | ALTID | Current | RFCXXXX, Section 5.5 | | | PID | Current | RFCXXXX, Section 5.5 |
| | PID | Current | RFCXXXX, Section 5.6 | | | TYPE | Current | RFCXXXX, Section 5.6 |
| | TYPE | Current | RFCXXXX, Section 5.7 | | | CALSCALE | Current | RFCXXXX, Section 5.7 |
| | CALSCALE | Current | RFCXXXX, Section 5.8 | | | SORT-AS | Current | RFCXXXX, Section 5.8 |
| | SORT-AS | Current | RFCXXXX, Section 5.9 | | | GEO | Current | RFCXXXX, Section 5.9 |
| | GEO | Current | RFCXXXX, Section 5.10 | | | TZ | Current | RFCXXXX, Section 5.10 |
| | TZ | Current | RFCXXXX, Section 5.11 |
| | VERSION | Current | RFCXXXX, Section 5.12 |
| | FMTTYPE | Current | RFCXXXX, Section 5.13 |
+-----------+-----------+---------+-----------------------+ +-----------+-----------+---------+-----------------------+
10.3.3. Value Data Types Registry 10.3.3. Value Data Types Registry
The following table is to be used to initialize the parameters The following table is to be used to initialize the parameters
registry. registry.
+------------------+---------+------------------------+ +------------------+---------+------------------------+
| Value Data Type | Status | Reference | | Value Data Type | Status | Reference |
+------------------+---------+------------------------+ +------------------+---------+------------------------+
| BINARY | Current | RFCXXXX, Section 4.7 |
| BOOLEAN | Current | RFCXXXX, Section 4.4 | | BOOLEAN | Current | RFCXXXX, Section 4.4 |
| DATE | Current | RFCXXXX, Section 4.3.1 | | DATE | Current | RFCXXXX, Section 4.3.1 |
| TIME | Current | RFCXXXX, Section 4.3.2 | | TIME | Current | RFCXXXX, Section 4.3.2 |
| DATE-TIME | Current | RFCXXXX, Section 4.3.3 | | DATE-TIME | Current | RFCXXXX, Section 4.3.3 |
| DATE-AND-OR-TIME | Current | RFCXXXX, Section 4.3.4 | | DATE-AND-OR-TIME | Current | RFCXXXX, Section 4.3.4 |
| TIMESTAMP | Current | RFCXXXX, Section 4.3.5 | | TIMESTAMP | Current | RFCXXXX, Section 4.3.5 |
| FLOAT | Current | RFCXXXX, Section 4.6 | | FLOAT | Current | RFCXXXX, Section 4.6 |
| INTEGER | Current | RFCXXXX, Section 4.5 | | INTEGER | Current | RFCXXXX, Section 4.5 |
| TEXT | Current | RFCXXXX, Section 4.1 | | TEXT | Current | RFCXXXX, Section 4.1 |
| URI | Current | RFCXXXX, Section 4.2 | | URI | Current | RFCXXXX, Section 4.2 |
| LANGUAGE-TAG | Current | RFCXXXX, Section 4.8 | | LANGUAGE-TAG | Current | RFCXXXX, Section 4.7 |
+------------------+---------+------------------------+ +------------------+---------+------------------------+
10.3.4. Values Registries 10.3.4. Values Registries
Separate tables will be used for property and parameter values. Separate tables will be used for property and parameter values.
The following table is to be used to initialize the property values The following table is to be used to initialize the property values
registry. registry.
+----------+--------------+---------+------------------------+ +----------+------------+---------+------------------------+
| Property | Value | Status | Reference | | Property | Value | Status | Reference |
+----------+--------------+---------+------------------------+ +----------+------------+---------+------------------------+
| BEGIN | VCARD | Current | RFCXXXX, Section 6.1.1 | | BEGIN | VCARD | Current | RFCXXXX, Section 6.1.1 |
| END | VCARD | Current | RFCXXXX, Section 6.1.2 | | END | VCARD | Current | RFCXXXX, Section 6.1.2 |
| KIND | individual | Current | RFCXXXX, Section 6.1.4 | | KIND | individual | Current | RFCXXXX, Section 6.1.4 |
| KIND | group | Current | RFCXXXX, Section 6.1.4 | | KIND | group | Current | RFCXXXX, Section 6.1.4 |
| KIND | org | Current | RFCXXXX, Section 6.1.4 | | KIND | org | Current | RFCXXXX, Section 6.1.4 |
| KIND | location | Current | RFCXXXX, Section 6.1.4 | | KIND | location | Current | RFCXXXX, Section 6.1.4 |
| KIND | thing | Current | RFCXXXX, Section 6.1.4 | | GENDER | male | Current | RFCXXXX, Section 6.2.7 |
| CLASS | PUBLIC | Current | RFCXXXX, Section 6.8.1 | | GENDER | female | Current | RFCXXXX, Section 6.2.7 |
| CLASS | PRIVATE | Current | RFCXXXX, Section 6.8.1 | +----------+------------+---------+------------------------+
| CLASS | CONFIDENTIAL | Current | RFCXXXX, Section 6.8.1 |
+----------+--------------+---------+------------------------+
The following table is to be used to initialize the parameter values The following table is to be used to initialize the parameter values
registry. registry.
+----------------+-----------+------------+---------+---------------+ +-----------------+-----------+-----------+---------+---------------+
| Property | Parameter | Value | Status | Reference | | Property | Parameter | Value | Status | Reference |
+----------------+-----------+------------+---------+---------------+ +-----------------+-----------+-----------+---------+---------------+
| FN, NICKNAME, | TYPE | work | Current | RFCXXXX, | | FN, NICKNAME, | TYPE | work | Current | RFCXXXX, |
| PHOTO, ADR, | | | | Section 5.7 | | PHOTO, ADR, | | | | Section 5.6 |
| LABEL, TEL, | | | | | | TEL, EMAIL, | | | | |
| EMAIL, IMPP, | | | | | | IMPP, LANG, TZ, | | | | |
| LANG, TZ, GEO, | | | | | | GEO, TITLE, | | | | |
| TITLE, ROLE, | | | | | | ROLE, LOGO, | | | | |
| LOGO, ORG, | | | | | | ORG, RELATED, | | | | |
| RELATED, | | | | | | CATEGORIES, | | | | |
| CATEGORIES, | | | | | | NOTE, SOUND, | | | | |
| NOTE, SOUND, | | | | | | URL, KEY, | | | | |
| URL, KEY, | | | | | | FBURL, | | | | |
| FBURL, | | | | | | CALADRURI, and | | | | |
| CALADRURI, and | | | | | | CALURI | | | | |
| CALURI | | | | | | FN, NICKNAME, | TYPE | home | Current | RFCXXXX, |
| FN, NICKNAME, | TYPE | home | Current | RFCXXXX, | | PHOTO, ADR, | | | | Section 5.6 |
| PHOTO, ADR, | | | | Section 5.7 | | TEL, EMAIL, | | | | |
| LABEL, TEL, | | | | | | IMPP, LANG, TZ, | | | | |
| EMAIL, IMPP, | | | | | | GEO, TITLE, | | | | |
| LANG, TZ, GEO, | | | | | | ROLE, LOGO, | | | | |
| TITLE, ROLE, | | | | | | ORG, RELATED, | | | | |
| LOGO, ORG, | | | | | | CATEGORIES, | | | | |
| RELATED, | | | | | | NOTE, SOUND, | | | | |
| CATEGORIES, | | | | | | URL, KEY, | | | | |
| NOTE, SOUND, | | | | | | FBURL, | | | | |
| URL, KEY, | | | | | | CALADRURI, and | | | | |
| FBURL, | | | | | | CALURI | | | | |
| CALADRURI, and | | | | | | TEL | TYPE | text | Current | RFCXXXX, |
| CALURI | | | | | | | | | | Section 6.4.1 |
| TEL | TYPE | text | Current | RFCXXXX, | | TEL | TYPE | voice | Current | RFCXXXX, |
| | | | | Section 6.4.1 | | | | | | Section 6.4.1 |
| TEL | TYPE | voice | Current | RFCXXXX, | | TEL | TYPE | fax | Current | RFCXXXX, |
| | | | | Section 6.4.1 | | | | | | Section 6.4.1 |
| TEL | TYPE | fax | Current | RFCXXXX, | | TEL | TYPE | cell | Current | RFCXXXX, |
| | | | | Section 6.4.1 | | | | | | Section 6.4.1 |
| TEL | TYPE | cell | Current | RFCXXXX, | | TEL | TYPE | video | Current | RFCXXXX, |
| | | | | Section 6.4.1 | | | | | | Section 6.4.1 |
| TEL | TYPE | video | Current | RFCXXXX, | | TEL | TYPE | pager | Current | RFCXXXX, |
| | | | | Section 6.4.1 | | | | | | Section 6.4.1 |
| TEL | TYPE | pager | Current | RFCXXXX, | | BDAY, | CALSCALE | gregorian | Current | RFCXXXX, |
| | | | | Section 6.4.1 | | ANNIVERSARY | | | | Section 6.2.5 |
| RELATED | TYPE | parent | Current | RFCXXXX, | +-----------------+-----------+-----------+---------+---------------+
| | | | | Section 6.6.6 |
| RELATED | TYPE | child | Current | RFCXXXX, |
| | | | | Section 6.6.6 |
| RELATED | TYPE | sibling | Current | RFCXXXX, |
| | | | | Section 6.6.6 |
| RELATED | TYPE | spouse | Current | RFCXXXX, |
| | | | | Section 6.6.6 |
| RELATED | TYPE | family | Current | RFCXXXX, |
| | | | | Section 6.6.6 |
| RELATED | TYPE | friend | Current | RFCXXXX, |
| | | | | Section 6.6.6 |
| RELATED | TYPE | supervisor | Current | RFCXXXX, |
| | | | | Section 6.6.6 |
| RELATED | TYPE | supervisee | Current | RFCXXXX, |
| | | | | Section 6.6.6 |
| RELATED | TYPE | assistant | Current | RFCXXXX, |
| | | | | Section 6.6.6 |
| RELATED | TYPE | colleague | Current | RFCXXXX, |
| | | | | Section 6.6.6 |
| RELATED | TYPE | agent | Current | RFCXXXX, |
| | | | | Section 6.6.6 |
| RELATED | TYPE | emergency | Current | RFCXXXX, |
| | | | | Section 6.6.6 |
| BDAY | CALSCALE | gregorian | Current | RFCXXXX, |
| | | | | Section 6.2.5 |
| DDAY | CALSCALE | gregorian | Current | RFCXXXX, |
| | | | | Section 6.2.6 |
| ANNIVERSARY | CALSCALE | gregorian | Current | RFCXXXX, |
| | | | | Section 6.2.9 |
+----------------+-----------+------------+---------+---------------+
11. Acknowledgements 11. Acknowledgements
The authors would like to thank Tim Howes, Mark Smith, and Frank The authors would like to thank Tim Howes, Mark Smith, and Frank
Dawson, the original authors of [RFC2425] and [RFC2426], as well as Dawson, the original authors of [RFC2425] and [RFC2426], as well as
the following individuals who have participated in the drafting, the following individuals who have participated in the drafting,
review and discussion of this memo: review and discussion of this memo:
Aki Niemi, Andy Mabbett, Alexander Mayrhofer, Alexey Melnikov, Anil Aki Niemi, Andy Mabbett, Alexander Mayrhofer, Alexey Melnikov, Anil
Srivastava, Barry Leiba, Ben Fortuna, Bernard Desruisseaux, Bernie Srivastava, Barry Leiba, Ben Fortuna, Bernard Desruisseaux, Bernie
skipping to change at page 74, line 39 skipping to change at page 66, line 24
[CCITT.X521.1988] International International Telephone [CCITT.X521.1988] International International Telephone
and Telegraph Consultative Committee, and Telegraph Consultative Committee,
"Information Technology - Open Systems "Information Technology - Open Systems
Interconnection - The Directory: Interconnection - The Directory:
Selected Object Classes", Selected Object Classes",
CCITT Recommendation X.521, CCITT Recommendation X.521,
November 1988. November 1988.
[I-D.ietf-vcarddav-vcardxml] Perreault, S., "vCard XML [I-D.ietf-vcarddav-vcardxml] Perreault, S., "vCard XML
Representation", Representation",
draft-ietf-vcarddav-vcardxml-05 (work draft-ietf-vcarddav-vcardxml-06 (work
in progress), August 2010. in progress), December 2010.
[ISO.5218.2004] International Organization for
Standardization, "Information
Technology - Codes for the
representation of human sexes",
ISO Standard 5218, December 2004.
[ISO.8601.2000] International Organization for [ISO.8601.2000] International Organization for
Standardization, "Data elements and Standardization, "Data elements and
interchange formats - Information interchange formats - Information
interchange - Representation of dates interchange - Representation of dates
and times", ISO Standard 8601, and times", ISO Standard 8601,
December 2000. December 2000.
[ISO.8601.2004] International Organization for [ISO.8601.2004] International Organization for
Standardization, "Data elements and Standardization, "Data elements and
interchange formats - Information interchange formats - Information
interchange - Representation of dates interchange - Representation of dates
and times", ISO Standard 8601, and times", ISO Standard 8601,
December 2004. December 2004.
[RFC2046] Freed, N. and N. Borenstein, [RFC2046] Freed, N. and N. Borenstein,
"Multipurpose Internet Mail Extensions "Multipurpose Internet Mail Extensions
(MIME) Part Two: Media Types", (MIME) Part Two: Media Types",
RFC 2046, November 1996. RFC 2046, November 1996.
[RFC2047] Moore, K., "MIME (Multipurpose Internet
Mail Extensions) Part Three: Message
Header Extensions for Non-ASCII Text",
RFC 2047, November 1996.
[RFC2119] Bradner, S., "Key words for use in RFCs [RFC2119] Bradner, S., "Key words for use in RFCs
to Indicate Requirement Levels", to Indicate Requirement Levels",
BCP 14, RFC 2119, March 1997. BCP 14, RFC 2119, March 1997.
[RFC2425] Howes, T., Smith, M., and F. Dawson, "A [RFC2425] Howes, T., Smith, M., and F. Dawson, "A
MIME Content-Type for Directory MIME Content-Type for Directory
Information", RFC 2425, September 1998. Information", RFC 2425, September 1998.
[RFC2426] Dawson, F. and T. Howes, "vCard MIME [RFC2426] Dawson, F. and T. Howes, "vCard MIME
Directory Profile", RFC 2426, Directory Profile", RFC 2426,
skipping to change at page 76, line 9 skipping to change at page 67, line 31
[RFC3986] Berners-Lee, T., Fielding, R., and L. [RFC3986] Berners-Lee, T., Fielding, R., and L.
Masinter, "Uniform Resource Identifier Masinter, "Uniform Resource Identifier
(URI): Generic Syntax", STD 66, (URI): Generic Syntax", STD 66,
RFC 3986, January 2005. RFC 3986, January 2005.
[RFC4122] Leach, P., Mealling, M., and R. Salz, [RFC4122] Leach, P., Mealling, M., and R. Salz,
"A Universally Unique IDentifier (UUID) "A Universally Unique IDentifier (UUID)
URN Namespace", RFC 4122, July 2005. URN Namespace", RFC 4122, July 2005.
[RFC4288] Freed, N. and J. Klensin, "Media Type
Specifications and Registration
Procedures", BCP 13, RFC 4288,
December 2005.
[RFC4770] Jennings, C. and J. Reschke, Ed., [RFC4770] Jennings, C. and J. Reschke, Ed.,
"vCard Extensions for Instant Messaging "vCard Extensions for Instant Messaging
(IM)", RFC 4770, January 2007. (IM)", RFC 4770, January 2007.
[RFC5234] Crocker, D. and P. Overell, "Augmented [RFC5234] Crocker, D. and P. Overell, "Augmented
BNF for Syntax Specifications: ABNF", BNF for Syntax Specifications: ABNF",
STD 68, RFC 5234, January 2008. STD 68, RFC 5234, January 2008.
[RFC5322] Resnick, P., Ed., "Internet Message [RFC5322] Resnick, P., Ed., "Internet Message
Format", RFC 5322, October 2008. Format", RFC 5322, October 2008.
skipping to change at page 76, line 38 skipping to change at page 68, line 7
[RFC5870] Mayrhofer, A. and C. Spanring, "A [RFC5870] Mayrhofer, A. and C. Spanring, "A
Uniform Resource Identifier for Uniform Resource Identifier for
Geographic Locations ('geo' URI)", Geographic Locations ('geo' URI)",
RFC 5870, June 2010. RFC 5870, June 2010.
[oldreference_VCARD] Internet Mail Consortium, "vCard - The [oldreference_VCARD] Internet Mail Consortium, "vCard - The
Electronic Business Card Version 2.1", Electronic Business Card Version 2.1",
September September. September September.
[xfn] Celik, T., Mullenweg, M., and E. Meyer,
"XHTML Friends Network 1.1",
<http://gmpg.org/xfn/11>.
12.2. Informative References 12.2. Informative References
[ISO9070] The International Organization for [ISO9070] The International Organization for
Standardization, "ISO 9070, Information Standardization, "ISO 9070, Information
Processing - SGML support facilities - Processing - SGML support facilities -
Registration Procedures for Public Text Registration Procedures for Public Text
Owner Identifiers", April 1991. Owner Identifiers", April 1991.
[RFC2616] Fielding, R., Gettys, J., Mogul, J., [RFC2616] Fielding, R., Gettys, J., Mogul, J.,
Frystyk, H., Masinter, L., Leach, P., Frystyk, H., Masinter, L., Leach, P.,
skipping to change at page 77, line 50 skipping to change at page 69, line 28
o UTF-8 is now the default character set. o UTF-8 is now the default character set.
o New vCard elements can be registered from IANA. o New vCard elements can be registered from IANA.
o Expanded text on character set. o Expanded text on character set.
A.2. Removed Features A.2. Removed Features
o The CONTEXT and CHARSET parameters are no more. o The CONTEXT and CHARSET parameters are no more.
o The NAME and MAILER properties are no more. o The NAME, MAILER, LABEL, and CLASS properties are no more.
o The "intl", "dom", "postal", and "parcel" TYPE parameter values o The "intl", "dom", "postal", and "parcel" TYPE parameter values
for the ADR and LABEL properties have been removed. for the ADR property have been removed.
o Inline vCards (such as the value of the AGENT property) are no o Inline vCards (such as the value of the AGENT property) are no
longer supported. longer supported.
o In the N property, additional names are now subsumed into the o In the N property, each component may now contain multiple comma-
given names list. separated values.
A.3. New Properties and Parameters A.3. New Properties and Parameters
o The KIND, SEX, LANG, DDAY, BIRTH, DEATH, XML, and CLIENTPIDMAP o The KIND, GENDER, LANG, ANNIVERSARY, XML, and CLIENTPIDMAP
properties have been added. properties have been added.
o [RFC2739], which defines the FBURL, CALADRURI, CAPURI, and CALURI o [RFC2739], which defines the FBURL, CALADRURI, CAPURI, and CALURI
properties, has been merged in. properties, has been merged in.
o [RFC4770], which defines the IMPP property, has been merged in. o [RFC4770], which defines the IMPP property, has been merged in.
o The "work", "home", and "uri" TYPE parameter values for the EMAIL o The "work", "home", and "uri" TYPE parameter values for the EMAIL
property have been added. property have been added.
skipping to change at page 78, line 49 skipping to change at page 70, line 27
o The value of TEL is now a URI. o The value of TEL is now a URI.
o The AGENT property was replaced with a type of RELATED. o The AGENT property was replaced with a type of RELATED.
o Date and time values now only support the basic format. o Date and time values now only support the basic format.
Truncation is now supported. Truncation is now supported.
Appendix B. Change Log (to be removed by RFC Editor prior to Appendix B. Change Log (to be removed by RFC Editor prior to
publication) publication)
B.1. Changes in -14 B.1. Changes in -15
o Reverted N to the 5-component format of vCard 3.
o Removed DDAY, BIRTH, and DEATH.
o First two components in ADR SHOULD be empty.
o Removed the LABEL property.
o Removed the binary value type and the ENCODING and FMTTYPE
parameters.
o Renamed SEX to GENDER. Set predefined values to "male" and
"female".
o Reverted TEL to take a text value by default, but SHOULD be reset
to a URI.
o Refer to iCalendar for CALSCALE.
o Removed the "thing" value for KIND.
o RELATED now uses XFN 1.1 for its value.
o Dropped the VERSION parameter. XML MUST be version 1.0.
o Dropped the CLASS property.
o Property and parameter names SHOULD be upper-case.
o Use ABNF for cardinality notation.
B.2. Changes in -14
o DQUOTE is US-ASCII decimal 34, not 22. o DQUOTE is US-ASCII decimal 34, not 22.
o Removed unused reference to RFC 2046. o Removed unused reference to RFC 2046.
o Updated reference to draft-ietf-vcarddav-vcardxml. o Updated reference to draft-ietf-vcarddav-vcardxml.
o Small fixes to the IANA registration text. o Small fixes to the IANA registration text.
o Added notes on the usage of TEL and IMPP properties. o Added notes on the usage of TEL and IMPP properties.
skipping to change at page 79, line 36 skipping to change at page 71, line 47
o Removed advice for always including VALUE parameter. o Removed advice for always including VALUE parameter.
o FMTTYPE MUST include the full MIME type. o FMTTYPE MUST include the full MIME type.
o Made ADR's ABNF more verbose. o Made ADR's ABNF more verbose.
o Organized TEL TYPE values in a table. o Organized TEL TYPE values in a table.
o Replaced TOP-SECRET example with NOINDEX. o Replaced TOP-SECRET example with NOINDEX.
B.2. Changes in -13 B.3. Changes in -13
o Changed global ABNF to make explicit that VERSION comes first. o Changed global ABNF to make explicit that VERSION comes first.
o Reworked example for LANGUAGE property. o Reworked example for LANGUAGE property.
o s/TYPE/FMTTYPE/ in two examples. o s/TYPE/FMTTYPE/ in two examples.
o Allow LANGUAGE parameter for text-valued BDAY, DDAY, and RELATED. o Allow LANGUAGE parameter for text-valued BDAY, DDAY, and RELATED.
o Tightened language on LANGUAGE parameter regarding cardinality. o Tightened language on LANGUAGE parameter regarding cardinality.
o Removed the NAME property. o Removed the NAME property.
o Adjusted semi-colon escaping rules. o Adjusted semi-colon escaping rules.
o Added the ALTID parameter. o Added the ALTID parameter.
B.3. Changes in -12 B.4. Changes in -12
o Fixed example of LANGUAGE cardinality. o Fixed example of LANGUAGE cardinality.
o Added note about YYYY-MM date format. o Added note about YYYY-MM date format.
o Fixed appendix A. o Fixed appendix A.
o VERSION property must come first. o VERSION property must come first.
o Fixed mistake in PID example. o Fixed mistake in PID example.
skipping to change at page 81, line 11 skipping to change at page 73, line 19
o BIRTH and DEATH can now have URI values. o BIRTH and DEATH can now have URI values.
o Created the FMTTYPE parameter. o Created the FMTTYPE parameter.
o KEY can now take a text value. o KEY can now take a text value.
o Added references to RFC 5545 (iCalendar). o Added references to RFC 5545 (iCalendar).
o Added namespace column in parameters registry. o Added namespace column in parameters registry.
B.4. Changes in -11 B.5. Changes in -11
o Change "XML chunk" to "XML fragment". o Change "XML chunk" to "XML fragment".
o Cite W3C document containing definition of "fragment". o Cite W3C document containing definition of "fragment".
o Added "XML" to property name ABNF. o Added "XML" to property name ABNF.
o Clarified newline escaping rule. o Clarified newline escaping rule.
o Replaced one remaining "type" with "property". o Replaced one remaining "type" with "property".
skipping to change at page 81, line 35 skipping to change at page 73, line 43
o XML property can now only contain one element that is not in the o XML property can now only contain one element that is not in the
vCard 4 namespace. vCard 4 namespace.
o Clarified interrelationship between LANGUAGE, cardinality, and o Clarified interrelationship between LANGUAGE, cardinality, and
PID. PID.
o Added "textphone" TEL type. o Added "textphone" TEL type.
o Fixed quoting of comma in ORG examples. o Fixed quoting of comma in ORG examples.
B.5. Changes in -10 B.6. Changes in -10
o Added component in SORT-STRING for sorting by given name. Fixed o Added component in SORT-STRING for sorting by given name. Fixed
and expanded the examples. and expanded the examples.
o Fixed KIND-value ABNF. o Fixed KIND-value ABNF.
o Fixed deprecated media type. o Fixed deprecated media type.
o Created the CALSCALE parameter. o Created the CALSCALE parameter.
o Strenghtened the stance on character set. o Strenghtened the stance on character set.
o Defined the Language-Tag ABNF. o Defined the Language-Tag ABNF.
o Made explicit the fact that IANA does not register templates. o Made explicit the fact that IANA does not register templates.
o Created the XML property. o Created the XML property.
o Added social networking examples to URL property. o Added social networking examples to URL property.
B.6. Changes in -09 B.7. Changes in -09
o Removed special meaning for groups. Removed the "work" and "home" o Removed special meaning for groups. Removed the "work" and "home"
groups. Removed the group registry. Re-introduced the "work" and groups. Removed the group registry. Re-introduced the "work" and
"home" TYPE parameter values. Applied the TYPE parameter to "home" TYPE parameter values. Applied the TYPE parameter to
properties which supported the "work" and "home" groups. properties which supported the "work" and "home" groups.
o Vendor namespace now uses private enterprise number in prefix. o Vendor namespace now uses private enterprise number in prefix.
o Added "thing" value for KIND property. o Added "thing" value for KIND property.
B.7. Changes in -08 B.8. Changes in -08
o Allow 1985 (year only) in date ABNF. o Allow 1985 (year only) in date ABNF.
o Fixed missing country in ADR example. o Fixed missing country in ADR example.
o Added the DATE-AND-OR-TIME value. o Added the DATE-AND-OR-TIME value.
o Made BDAY and DDAY use DATE-AND-OR-TIME. o Made BDAY and DDAY use DATE-AND-OR-TIME.
o Prefixed "param" and "value" production rules specific to o Prefixed "param" and "value" production rules specific to
skipping to change at page 82, line 43 skipping to change at page 75, line 5
o Replaced the GENDER property with the SEX property. o Replaced the GENDER property with the SEX property.
o Added the ANNIVERSARY property. o Added the ANNIVERSARY property.
o Added the "friend" and "spouse" types of RELATED. o Added the "friend" and "spouse" types of RELATED.
o TZ property now has text / uri value. o TZ property now has text / uri value.
o Refined the definitions of TITLE and ROLE. o Refined the definitions of TITLE and ROLE.
B.8. Changes in -07 B.9. Changes in -07
o PREF is now bounded. 100 is the maximum value. o PREF is now bounded. 100 is the maximum value.
o Added the "emergency" RELATED type. o Added the "emergency" RELATED type.
o Made GEO a URI. o Made GEO a URI.
o Added GEO and TZ parameters to ADR. o Added GEO and TZ parameters to ADR.
o Changed wording of "default" use of SOUND property. o Changed wording of "default" use of SOUND property.
skipping to change at page 83, line 17 skipping to change at page 75, line 27
o Completely reworked the date, time, and date-time grammars. o Completely reworked the date, time, and date-time grammars.
o Added the timestamp value type. o Added the timestamp value type.
o REV now has the timestamp value type. o REV now has the timestamp value type.
o Rewrote ABNF. o Rewrote ABNF.
o ORG can now have a single level. o ORG can now have a single level.
B.9. Changes in -06 B.10. Changes in -06
o Corrected omission of resetability to text value for RELATED. o Corrected omission of resetability to text value for RELATED.
o Let KEY value type be reset to a URI value. o Let KEY value type be reset to a URI value.
o ABNF fixes. o ABNF fixes.
o Made gender values extensible. o Made gender values extensible.
o Gave the PREF parameter a positive integer value. o Gave the PREF parameter a positive integer value.
skipping to change at page 84, line 9 skipping to change at page 76, line 19
o Removed TYPE parameter from EMAIL properties in examples. o Removed TYPE parameter from EMAIL properties in examples.
o Created the CLIENTPIDMAP property. o Created the CLIENTPIDMAP property.
o Changed PID value to a pair of small integers. o Changed PID value to a pair of small integers.
o Completely reworked synchronization mechanisms. o Completely reworked synchronization mechanisms.
o Created brand new synchronization example. o Created brand new synchronization example.
B.10. Changes in -05 B.11. Changes in -05
o Added multi PID value proposal. o Added multi PID value proposal.
B.11. Changes in -04 B.12. Changes in -04
o Added "location" value for KIND property. o Added "location" value for KIND property.
o Some fixes to ABNF. o Some fixes to ABNF.
o Moved "pref" from being a TYPE value to a parameter in its own o Moved "pref" from being a TYPE value to a parameter in its own
right. right.
o Removed the "work" and "home" TYPE values. o Removed the "work" and "home" TYPE values.
skipping to change at page 84, line 43 skipping to change at page 77, line 5
o Removed TYPE parameter from EMAIL and IMPP properties. o Removed TYPE parameter from EMAIL and IMPP properties.
o Replaced AGENT with a type of RELATED. o Replaced AGENT with a type of RELATED.
o Use example.org domain in URL example. o Use example.org domain in URL example.
o Created initial IANA table of values. o Created initial IANA table of values.
o Defined meaning of PUBLIC, PRIVATE, CONFIDENTIAL. o Defined meaning of PUBLIC, PRIVATE, CONFIDENTIAL.
B.12. Changes in -03 B.13. Changes in -03
o Various changes to the synchronization mechanisms. o Various changes to the synchronization mechanisms.
o Allowed truncated format for dated. See issue #236. o Allowed truncated format for dated. See issue #236.
B.13. Changes in -02 B.14. Changes in -02
o Removed useless text in IMPP description. o Removed useless text in IMPP description.
o Added CalDAV-SCHED example to CALADRURI. o Added CalDAV-SCHED example to CALADRURI.
o Removed CAPURI property. o Removed CAPURI property.
o Dashes in dates and colons in times are now mandatory. o Dashes in dates and colons in times are now mandatory.
o Allow for dates such as 2008 and 2008-05 and times such as 07 and o Allow for dates such as 2008 and 2008-05 and times such as 07 and
skipping to change at page 85, line 38 skipping to change at page 77, line 44
o Changed the presence of UID and PID when synchronization is to be o Changed the presence of UID and PID when synchronization is to be
used from MUST to SHOULD. used from MUST to SHOULD.
o Added the RELATED (Section 6.6.6) property. o Added the RELATED (Section 6.6.6) property.
o Fixed many ABNF typos (issue #252). o Fixed many ABNF typos (issue #252).
o Changed formatting of ABNF comments to make them easier to read o Changed formatting of ABNF comments to make them easier to read
(issue #226). (issue #226).
B.14. Changes in -01 B.15. Changes in -01
o Merged [RFC2739] in. o Merged [RFC2739] in.
o Converted all foobar.com, abc.com, etc. to example.com. o Converted all foobar.com, abc.com, etc. to example.com.
o Fixed bugs in ABNF. o Fixed bugs in ABNF.
o Made explicit that coordinates in the GEO property are expressed o Made explicit that coordinates in the GEO property are expressed
in the WGS 84 reference system. in the WGS 84 reference system.
skipping to change at page 86, line 18 skipping to change at page 78, line 25
o Added Section 7. o Added Section 7.
o Created IANA process for registering new parameters, value types, o Created IANA process for registering new parameters, value types,
and properties. and properties.
o Created the initial IANA registries. o Created the initial IANA registries.
o Created vendor namespace based on text from RFC 4288. o Created vendor namespace based on text from RFC 4288.
B.15. Changes in -00 B.16. Changes in -00
o Name change because draft has been accepted as WG item. o Name change because draft has been accepted as WG item.
Otherwise, same as draft-resnick-vcarddav-vcardrev-01. Otherwise, same as draft-resnick-vcarddav-vcardrev-01.
o Removed reference to RFC 2234. o Removed reference to RFC 2234.
o Fixed errata from o Fixed errata from
http://www.rfc-editor.org/errata_search.php?rfc=2426. http://www.rfc-editor.org/errata_search.php?rfc=2426.
o Removed passage referring to RFC 2425 profiles. o Removed passage referring to RFC 2425 profiles.
 End of changes. 173 change blocks. 
841 lines changed or deleted 524 lines changed or added

This html diff was produced by rfcdiff 1.40. The latest version is available from http://tools.ietf.org/tools/rfcdiff/