< draft-ietf-calext-jscontact-01.txt   draft-ietf-calext-jscontact-02.txt >
Calendaring Extensions R. Stepanek Calendaring Extensions R. Stepanek
Internet-Draft FastMail Internet-Draft FastMail
Intended status: Standards Track M. Loffredo Intended status: Standards Track M. Loffredo
Expires: 6 September 2022 IIT-CNR Expires: 13 October 2022 IIT-CNR
5 March 2022 11 April 2022
JSContact: A JSON representation of contact data JSContact: A JSON representation of contact data
draft-ietf-calext-jscontact-01 draft-ietf-calext-jscontact-02
Abstract Abstract
This specification defines a data model and JSON representation of This specification defines a data model and JSON representation of
contact card information that can be used for data storage and contact card information that can be used for data storage and
exchange in address book or directory applications. It aims to be an exchange in address book or directory applications. It aims to be an
alternative to the vCard data format and to be unambiguous, alternative to the vCard data format and to be unambiguous,
extendable and simple to process. In contrast to the JSON-based extendable and simple to process. In contrast to the JSON-based
jCard format, it is not a direct mapping from the vCard data model jCard format, it is not a direct mapping from the vCard data model
and expands semantics where appropriate. and expands semantics where appropriate.
skipping to change at page 1, line 37 skipping to change at page 1, line 37
Internet-Drafts are working documents of the Internet Engineering Internet-Drafts are working documents of the Internet Engineering
Task Force (IETF). Note that other groups may also distribute Task Force (IETF). Note that other groups may also distribute
working documents as Internet-Drafts. The list of current Internet- working documents as Internet-Drafts. The list of current Internet-
Drafts is at https://datatracker.ietf.org/drafts/current/. Drafts is at https://datatracker.ietf.org/drafts/current/.
Internet-Drafts are draft documents valid for a maximum of six months Internet-Drafts are draft documents valid for a maximum of six months
and may be updated, replaced, or obsoleted by other documents at any and may be updated, replaced, or obsoleted by other documents at any
time. It is inappropriate to use Internet-Drafts as reference time. It is inappropriate to use Internet-Drafts as reference
material or to cite them other than as "work in progress." material or to cite them other than as "work in progress."
This Internet-Draft will expire on 6 September 2022. This Internet-Draft will expire on 13 October 2022.
Copyright Notice Copyright Notice
Copyright (c) 2022 IETF Trust and the persons identified as the Copyright (c) 2022 IETF Trust and the persons identified as the
document authors. All rights reserved. document authors. All rights reserved.
This document is subject to BCP 78 and the IETF Trust's Legal This document is subject to BCP 78 and the IETF Trust's Legal
Provisions Relating to IETF Documents (https://trustee.ietf.org/ Provisions Relating to IETF Documents (https://trustee.ietf.org/
license-info) in effect on the date of publication of this document. license-info) in effect on the date of publication of this document.
Please review these documents carefully, as they describe your rights Please review these documents carefully, as they describe your rights
skipping to change at page 2, line 49 skipping to change at page 2, line 49
2.2.1. name . . . . . . . . . . . . . . . . . . . . . . . . 10 2.2.1. name . . . . . . . . . . . . . . . . . . . . . . . . 10
2.2.2. fullName . . . . . . . . . . . . . . . . . . . . . . 11 2.2.2. fullName . . . . . . . . . . . . . . . . . . . . . . 11
2.2.3. nickNames . . . . . . . . . . . . . . . . . . . . . . 11 2.2.3. nickNames . . . . . . . . . . . . . . . . . . . . . . 11
2.2.4. organizations . . . . . . . . . . . . . . . . . . . . 12 2.2.4. organizations . . . . . . . . . . . . . . . . . . . . 12
2.2.5. titles . . . . . . . . . . . . . . . . . . . . . . . 12 2.2.5. titles . . . . . . . . . . . . . . . . . . . . . . . 12
2.2.6. speakToAs . . . . . . . . . . . . . . . . . . . . . . 12 2.2.6. speakToAs . . . . . . . . . . . . . . . . . . . . . . 12
2.3. Contact and Resource properties . . . . . . . . . . . . . 13 2.3. Contact and Resource properties . . . . . . . . . . . . . 13
2.3.1. emails . . . . . . . . . . . . . . . . . . . . . . . 13 2.3.1. emails . . . . . . . . . . . . . . . . . . . . . . . 13
2.3.2. phones . . . . . . . . . . . . . . . . . . . . . . . 14 2.3.2. phones . . . . . . . . . . . . . . . . . . . . . . . 14
2.3.3. online . . . . . . . . . . . . . . . . . . . . . . . 15 2.3.3. online . . . . . . . . . . . . . . . . . . . . . . . 15
2.3.4. photos . . . . . . . . . . . . . . . . . . . . . . . 15 2.3.4. scheduling . . . . . . . . . . . . . . . . . . . . . 16
2.3.5. preferredContactMethod . . . . . . . . . . . . . . . 16 2.3.5. photos . . . . . . . . . . . . . . . . . . . . . . . 17
2.3.6. preferredContactLanguages . . . . . . . . . . . . . . 16 2.3.6. preferredContactMethod . . . . . . . . . . . . . . . 17
2.4. Address and Location properties . . . . . . . . . . . . . 17 2.3.7. preferredContactLanguages . . . . . . . . . . . . . . 17
2.4.1. addresses . . . . . . . . . . . . . . . . . . . . . . 17
2.5. Multilingual properties . . . . . . . . . . . . . . . . . 19 2.4. Address and Location properties . . . . . . . . . . . . . 18
2.5.1. localizations . . . . . . . . . . . . . . . . . . . . 19 2.4.1. addresses . . . . . . . . . . . . . . . . . . . . . . 18
2.6. Additional properties . . . . . . . . . . . . . . . . . . 19 2.5. Multilingual properties . . . . . . . . . . . . . . . . . 20
2.6.1. anniversaries . . . . . . . . . . . . . . . . . . . . 19 2.5.1. localizations . . . . . . . . . . . . . . . . . . . . 20
2.6.2. personalInfo . . . . . . . . . . . . . . . . . . . . 20 2.6. Additional properties . . . . . . . . . . . . . . . . . . 21
2.6.3. notes . . . . . . . . . . . . . . . . . . . . . . . . 21 2.6.1. anniversaries . . . . . . . . . . . . . . . . . . . . 21
2.6.4. categories . . . . . . . . . . . . . . . . . . . . . 21 2.6.2. personalInfo . . . . . . . . . . . . . . . . . . . . 21
2.6.5. timeZones . . . . . . . . . . . . . . . . . . . . . . 21 2.6.3. notes . . . . . . . . . . . . . . . . . . . . . . . . 22
3. CardGroup . . . . . . . . . . . . . . . . . . . . . . . . . . 21 2.6.4. categories . . . . . . . . . . . . . . . . . . . . . 22
3.1. Group properties . . . . . . . . . . . . . . . . . . . . 21 2.6.5. timeZones . . . . . . . . . . . . . . . . . . . . . . 22
3.1.1. @type . . . . . . . . . . . . . . . . . . . . . . . . 21 3. CardGroup . . . . . . . . . . . . . . . . . . . . . . . . . . 22
3.1.2. uid . . . . . . . . . . . . . . . . . . . . . . . . . 21 3.1. Group properties . . . . . . . . . . . . . . . . . . . . 22
3.1.3. members . . . . . . . . . . . . . . . . . . . . . . . 22 3.1.1. @type . . . . . . . . . . . . . . . . . . . . . . . . 22
3.1.4. name . . . . . . . . . . . . . . . . . . . . . . . . 22 3.1.2. uid . . . . . . . . . . . . . . . . . . . . . . . . . 23
3.1.5. card . . . . . . . . . . . . . . . . . . . . . . . . 22 3.1.3. members . . . . . . . . . . . . . . . . . . . . . . . 23
4. Implementation Status . . . . . . . . . . . . . . . . . . . . 22 3.1.4. name . . . . . . . . . . . . . . . . . . . . . . . . 23
4.1. IIT-CNR/Registro.it . . . . . . . . . . . . . . . . . . . 22 3.1.5. card . . . . . . . . . . . . . . . . . . . . . . . . 23
5. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 23 4. Implementation Status . . . . . . . . . . . . . . . . . . . . 23
6. Security Considerations . . . . . . . . . . . . . . . . . . . 23 4.1. IIT-CNR/Registro.it . . . . . . . . . . . . . . . . . . . 23
7. References . . . . . . . . . . . . . . . . . . . . . . . . . 23 5. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 24
7.1. Normative References . . . . . . . . . . . . . . . . . . 23 6. Security Considerations . . . . . . . . . . . . . . . . . . . 24
7.2. Informative References . . . . . . . . . . . . . . . . . 24 7. References . . . . . . . . . . . . . . . . . . . . . . . . . 24
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 25 7.1. Normative References . . . . . . . . . . . . . . . . . . 24
7.2. Informative References . . . . . . . . . . . . . . . . . 25
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 27
1. Introduction 1. Introduction
This document defines a data model for contact card data normally This document defines a data model for contact card data normally
used in address book or directory applications and services. It aims used in address book or directory applications and services. It aims
to be an alternative to the vCard data format [RFC6350] and to to be an alternative to the vCard data format [RFC6350] and to
provide a JSON-based standard representation of contact card data. provide a JSON-based standard representation of contact card data.
The key design considerations for this data model are as follows: The key design considerations for this data model are as follows:
skipping to change at page 15, line 17 skipping to change at page 15, line 17
Type: Id[Resource] (optional). Type: Id[Resource] (optional).
The online resources and services that are associated with the entity The online resources and services that are associated with the entity
represented by this card. A Resource object has the following represented by this card. A Resource object has the following
properties: properties:
* @type: String (mandatory). Specifies the type of this object. * @type: String (mandatory). Specifies the type of this object.
This MUST be Resource. This MUST be Resource.
* resource: String (mandatory). The resource value, where the * resource: String (mandatory). The resource value, where the
allowed value form is defined by the the _type_ property. In any allowed value form is defined by the the _type_ property. If the
case the value MUST NOT be empty. value form is URI, then the property value MUST be a valid _URI_
as defined in Section 3 of [RFC3986] and updates. In any case the
value MUST NOT be empty.
* type: String (optional). The type of the resource value. Allowed * type: String (optional). The type of the resource. Allowed
values are: values are:
- uri The resource value is a URI, e.g. a website link. This - audio The resource is a digital sound URI, such as a recording
MUST be a valid _URI_ as defined in Section 3 of [RFC3986] and of proper pronunciation of the name of this card.
updates.
- calendar The resource is a calendar URI associated with the
entity represented by this card.
- contact The resource is an alternative contact method URI to
contact the entity represented by this card. This typically is
a web contact form using the "https" URI scheme, but may be any
other.
- directory The resource is a directory service URI where the
entity represented by this card can be found in. This
typically is an organizational directory that also contains
associated entities, e.g. co-workers and management in a
company directory.
- directorySource The resource is a directory service entry URI
of the entity represented by this card. In contrast to the
"directory" type this resource only provides the means to
access directory information for this entity.
- freeBusy The resource is a free-busy calendaring URI for the
entity represented by this card.
- logo The resource is a graphic logo URI associated with the
entity represented by this card.
- publicKey The resorce is a cryptograhic public key or
certificate URI associated with the entity represented by this
card.
- uri The resource value is any URI, e.g. a website link.
- username The resource value is a username associated with the - username The resource value is a username associated with the
entity represented by this card (e.g. for social media, or an entity represented by this card (e.g. for social media, or an
IM client). The _label_ property SHOULD be included to IM client). The _label_ property SHOULD be included to
identify what service this is for. For compatibility between identify what service this is for. For compatibility between
clients, this label SHOULD be the canonical service name, clients, this label SHOULD be the canonical service name,
including capitalisation. e.g. Twitter, Facebook, Skype, including capitalisation. e.g. Twitter, Facebook, Skype,
GitHub, XMPP. The resource value may be any non-empty free GitHub, XMPP. The resource value may be any non-empty free
text. text.
skipping to change at page 15, line 49 skipping to change at page 16, line 33
* contexts: Context[Boolean] (optional) The contexts in which to use * contexts: Context[Boolean] (optional) The contexts in which to use
this resource. The value for each key in the object MUST be true. this resource. The value for each key in the object MUST be true.
* pref: Preference (optional) The preference of this resource in * pref: Preference (optional) The preference of this resource in
relation to other resources. relation to other resources.
* label: String (optional). A label describing the value in more * label: String (optional). A label describing the value in more
detail. detail.
2.3.4. photos 2.3.4. scheduling
Type: Id[Scheduling] (optional).
The methods by which the entity receives calendar scheduling
invitations and updates. A Scheduling object has the following
properties:
* @type: String (mandatory). Specifies the type of this object.
This MUST be Scheduling.
* sendTo: String[String] (mandatory). The keys in the property
value are the available methods for scheduling. The value is a
URI for the method specified in the key. This MUST be a valid
"sendTo" property value as specified in Section 4.4.6 of [RFC8984]
and updates.
* pref: Preference (optional) The preference of this scheduling
object in relation to other scheduling objects.
2.3.5. photos
Type: Id[File] (optional). Type: Id[File] (optional).
A map of photo ids to File objects that contain photographs or images A map of photo ids to File objects that contain photographs or images
associated with this card. A typical use case is to include an associated with this card. A typical use case is to include an
avatar for display along the contact name. avatar for display along the contact name.
A File object has the following properties: A File object has the following properties:
* @type: String (mandatory). Specifies the type of this object. * @type: String (mandatory). Specifies the type of this object.
skipping to change at page 16, line 30 skipping to change at page 17, line 34
* size: UnsignedInt (optional). The size, in octets, of the file * size: UnsignedInt (optional). The size, in octets, of the file
when fully decoded (i.e., the number of octets in the file the when fully decoded (i.e., the number of octets in the file the
user would download), if known. user would download), if known.
* pref: Preference (optional) The preference of this photo in * pref: Preference (optional) The preference of this photo in
relation to other photos. relation to other photos.
* label: String (optional). A label describing the value in more * label: String (optional). A label describing the value in more
detail. detail.
2.3.5. preferredContactMethod 2.3.6. preferredContactMethod
Type : String (optional) Type : String (optional)
Defines the preferred method to contact the holder of this card. The Defines the preferred method to contact the holder of this card. The
value MUST be the property names: emails, phones, online. value MUST be the property names: emails, phones, online.
2.3.6. preferredContactLanguages 2.3.7. preferredContactLanguages
Type : String[ContactLanguage[]] (optional) Type : String[ContactLanguage[]] (optional)
Defines the preferred languages for contacting the entity associated Defines the preferred languages for contacting the entity associated
with this card. The keys in the object MUST be [RFC5646] language with this card. The keys in the object MUST be [RFC5646] language
tags. The values are a (possibly empty) list of contact language tags. The values are a (possibly empty) list of contact language
preferences for this language. A valid ContactLanguage object MUST preferences for this language. A valid ContactLanguage object MUST
have at least one of its properties set. have at least one of its properties set.
A ContactLanguage object has the following properties: A ContactLanguage object has the following properties:
 End of changes. 10 change blocks. 
41 lines changed or deleted 95 lines changed or added

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