[calsify] Re: Versioning JSCalendar?
Phillip Hallam-Baker <phill@hallambaker.com> Tue, 27 January 2026 20:24 UTC
Return-Path: <hallam@gmail.com>
X-Original-To: calsify@mail2.ietf.org
Delivered-To: calsify@mail2.ietf.org
Received: from localhost (localhost [127.0.0.1]) by mail2.ietf.org (Postfix) with ESMTP id 1720DADEA84B for <calsify@mail2.ietf.org>; Tue, 27 Jan 2026 12:24:42 -0800 (PST)
X-Virus-Scanned: amavisd-new at ietf.org
X-Spam-Flag: NO
X-Spam-Score: -1.877
X-Spam-Level:
X-Spam-Status: No, score=-1.877 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, FREEMAIL_FORGED_FROMDOMAIN=0.001, FREEMAIL_FROM=0.001, HEADER_FROM_DIFFERENT_DOMAINS=0.017, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H2=0.001, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, RCVD_IN_VALIDITY_SAFE_BLOCKED=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001] autolearn=ham autolearn_force=no
Received: from mail2.ietf.org ([166.84.6.31]) by localhost (mail2.ietf.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id zLdnD0q3kNJA for <calsify@mail2.ietf.org>; Tue, 27 Jan 2026 12:24:41 -0800 (PST)
Received: from mail-qt1-f175.google.com (mail-qt1-f175.google.com [209.85.160.175]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits) key-exchange X25519 server-signature ECDSA (P-256) server-digest SHA256) (No client certificate requested) by mail2.ietf.org (Postfix) with ESMTPS id 21A17ADEA833 for <calsify@ietf.org>; Tue, 27 Jan 2026 12:24:41 -0800 (PST)
Received: by mail-qt1-f175.google.com with SMTP id d75a77b69052e-502a98c66f7so52014361cf.1 for <calsify@ietf.org>; Tue, 27 Jan 2026 12:24:41 -0800 (PST)
ARC-Seal: i=1; a=rsa-sha256; t=1769545474; cv=none; d=google.com; s=arc-20240605; b=Mw7gDKWzc+WS4M3pdIxgZDrG/fw2zbQ8voo5dpFC7vJz9Dwepx/MQGt8sj3Oih6WDQ YtAvI3lz1/ErvgLbaz9Of+SPGHCH1+XSd8ssDr6Xh22h0QR4AU+MgDw2BcMAYI0BpLu4 DXxfZsM9PyBBCu70+k6YdDoBSVydBklaT7ZGYn4oudqbLv/3nSAbky+rPfHtFsmMSo63 VO92bVDY8/YNf9H1yRmbqhEfUKmgOU0bkCfo7tZ+sfg9MHdr+XzlceFGdPbm6PWDToDL xk25xLeqjhvDI1J3sczV4SkmGpxw+ygAP7+KMarqilPU6Z5iAKbtlT8uGm7olwWwF+RI IR6A==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version; bh=ncEb3dL+ybSE7usSpuc2UHkOQvDtTKxkU+U+VC7kYm0=; fh=XWSTVGw7e4aXwLCjcNg0Wtqfp1xWHZ/YqVvCFdPFjNQ=; b=gAqGba+cOuyi88hKf7mmtncgVD+IY75eSsbACmXovd/PNHO96LXJTnKZj5nLFVbfoZ zIThNEfVADdc509oUaWu+iSbkmrol9EIusMqgQnEyyS+drKRLNXN1LKXOm6H/6QkKHAw vkV/pGy35qSFRlNhllqS+ayCHooQdPHp8ftbMteQ8YY2ucI2Z8yCGL+PI8ppr6o+Ujqx viIsN9P3LZF9e4FB299xz/p1dbhfarNwWrJ08zMFuhUDmp56hwY6ZPefyqncW2GmLL8Z RBJEg6y9cmM+T8wjIY43IikZwenQArXEcVpz5hZ3O2juIXI0W58p6nAHRudQLnlRbfow IteA==; darn=ietf.org
ARC-Authentication-Results: i=1; mx.google.com; arc=none
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1769545474; x=1770150274; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-gg:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=ncEb3dL+ybSE7usSpuc2UHkOQvDtTKxkU+U+VC7kYm0=; b=WcVZ8V8wHI4BDg5nTTBxQKtnWZOoxdaUIPnmdDK1JKN3+zTfJzUgDU6q4WNGg0f+OZ vN+Am3eUeCoTUv2NVfKtlBp0d+Akscjkgi3Cm4EYnV1+lndlH0st3LdR4hirEctNhQOV 38pUZEEgtCouCXhTM7XnIZLWKQMh068OEJcZF7CZePfqPYASq6STNrih/cdF0dbasGVz WCDtgDGgukqqQSaLlnKK9TAb98v9frCY3citjggf9Zcw8iWCc5kq6PM1KKaNGCI/g4SF JC4gkKCylhAHscj23p2j5i2ut7sIWe8MujK15Yevj7LyxFMBWxJQ+EiymjS8ZyssRiSQ om3A==
X-Gm-Message-State: AOJu0Ywj3nfpwk/2QoCgdIrkoEUJGTl7A0J4VYqWaWkHDio4wRe2CuXg D7TOixLEglfFVvKz+B5DURS2dI3Yy70xPpsGMQXai+Pu+MuXkHirvMeJRMOMwJieCYZpa07CU8N 4lHHpr2dkEe2EQQW9lQgzJoMYQioBWUZm3g==
X-Gm-Gg: AZuq6aIhY3IKQgtjWS6+8aDPa7YfxQ6gyD01ppt8XaE+3JZtQxWUnc3EeQEeUaFtmVZ YUzKHKYizAxcKpVpPECbrU0DIZwvVHaLnCrbAKvJI5J7AW/gIndhxpX1F4j8b+uf27DQn043KUS QPpZ/OgPTol8+QK+Qopuov39FYHfqg6REzBHOa3Z1x20ry8P37I3a+fOKfvcBm7/4p6IOEqLvST bb+yYzvkG0X2X2mKO4aVsHDO7mc/vBE1pCtZ76oRx87vF/sUA451z2z5hK83ZauK5hQtwHuI3ox lWK9rb3bapiziL0rOlBKiFmVmjq/lneTlcZyuN5sD2UKraqWyqm0
X-Received: by 2002:a05:622a:11d4:b0:501:4701:e9f9 with SMTP id d75a77b69052e-5032f887773mr33862011cf.26.1769545474292; Tue, 27 Jan 2026 12:24:34 -0800 (PST)
MIME-Version: 1.0
References: <15fe3abc-b8f0-4434-bc80-e14bab82de0d@app.fastmail.com>
In-Reply-To: <15fe3abc-b8f0-4434-bc80-e14bab82de0d@app.fastmail.com>
From: Phillip Hallam-Baker <phill@hallambaker.com>
Date: Tue, 27 Jan 2026 15:24:21 -0500
X-Gm-Features: AZwV_Qgf81vmEqVKrkxq4bDIUxoPbDkIoyo53OVVQIV-2Ru3M-BYZ8qidwBbTJQ
Message-ID: <CAMm+Lwg939c4B34ekU-YBcjK_c-mG7Sbiuo=FM7aisQ00rk7wg@mail.gmail.com>
To: Robert Stepanek <rsto=40fastmailteam.com@dmarc.ietf.org>
Content-Type: multipart/alternative; boundary="00000000000068c08806496469ad"
Message-ID-Hash: 2HNOBJ36JTQLA7PS5ZLAKCHIMHZ2NXMV
X-Message-ID-Hash: 2HNOBJ36JTQLA7PS5ZLAKCHIMHZ2NXMV
X-MailFrom: hallam@gmail.com
X-Mailman-Rule-Misses: dmarc-mitigation; no-senders; approved; emergency; loop; banned-address; member-moderation; header-match-calsify.ietf.org-0; nonmember-moderation; administrivia; implicit-dest; max-recipients; max-size; news-moderation; no-subject; digests; suspicious-header
CC: calsify@ietf.org
X-Mailman-Version: 3.3.9rc6
Precedence: list
Subject: [calsify] Re: Versioning JSCalendar?
List-Id: "Calendaring, Contacts and Scheduling Standards Maintenance" <calsify.ietf.org>
Archived-At: <https://mailarchive.ietf.org/arch/msg/calsify/wh5_XsXEeAbLG_2sDs24ti-kmG0>
List-Archive: <https://mailarchive.ietf.org/arch/browse/calsify>
List-Help: <mailto:calsify-request@ietf.org?subject=help>
List-Owner: <mailto:calsify-owner@ietf.org>
List-Post: <mailto:calsify@ietf.org>
List-Subscribe: <mailto:calsify-join@ietf.org>
List-Unsubscribe: <mailto:calsify-leave@ietf.org>
My take on versioning is that: 1) We should do the same thing for JSContact and JSCalendar because we are going to be in a world of hurt otherwise. 2) We are not so deeply dug in on JSCalendar that we are absolutely past the change point, but I don't think changing JSCalendar in substance is necessary. 3) For a protocol, a change in the major version number is advertising that this is a breaking change, legacy applications can't expect to make sense of the data at all. Upping the major version number should be something that is exceptionally rare. In fact it should be so rare that maybe you should be changing the media type. 4) For a protocol, a change in the minor version number is most useful as a negotiation mechanism. Telling a legacy client that there is some new functionality in use that they might like to be using, letting people pick clients that are up to date. 5) The two protocols are going to interact because when Alice sends a JSCalendar invitation to Bob, her client is going to go to Bob's JSContact to look at the available delivery options. And those should have the ability to specify which versions Bob accepts. Don't have to do intervals here, just the highest version number accepted for each major version so [1.3, 2.6, 3.0] Seems that knowing that this is a version x.4 appointment might be a useful thing for an x.3 client to know even if it can't act on that knowledge. I have been quiet here for a while but I have been working hard on things that I think might be relevant in a very short while. Consider the following scenario: * Alice and Bob have exchanged JSContact information that contain a public key encryption credential for each other. * Alice is sending Bob a meeting invite in JSCalendar format Now ignoring for the time being the precise transport protocol used to get the invite from Alice to Bob, wouldn't we want to be encrypting it end to end? So, we might have a list of the encapsulation formats supported [ OpenPGP, S/MIME, JOSE ] Given that we are in XMLville, I am thinking JOSE is the format that is going to be most fluent but others may have different ideas, especially if they have already written the code. On Tue, Jan 20, 2026 at 5:03 AM Robert Stepanek <rsto= 40fastmailteam.com@dmarc.ietf.org> wrote: > Related to Daniel Migault's review feedack > <https://mailarchive.ietf.org/arch/msg/calsify/hvuh57T5eGrsYPe3eOimDBtJhU0/>, > I'm looking for the working group's opinion on if and how to version > JSCalendar data. I want to decide before we publish JMAP for Calendars and > the new JSCalendar specification. > > Currently, JSCalendar (RFC 8984) does not define versioning. In contrast, > JSContact (RFC 9553) does require each Card object to have a "version" > property and that value consists of a major and minor version (see Section > 1.9 in RFC 9553 > <https://www.rfc-editor.org/rfc/rfc9553.html#name-versioning>). > > Related, JSCalendar does not instruct implementations how to deal with > unknown elements, except for a few specific cases such as the > "Group.entries" or the "Participant.roles" properties. In contrast, > JSContact explicitly requires implementations to ignore but preserve > unknown elements. The idea is that implementations should be able to deal > with JSContact data even if they do not support the minor version that is > indicated in the payload (see Section 1.7.4 in RFC 9553 > <https://datatracker.ietf.org/doc/html/rfc9553#name-unknown-properties>). > > We originally hadn't defined versioning in JSCalendar because of bad > experiences with iCalendar, which up to today sticks to version "2.0" > despite significant changes since RFC 5545. For JSContact, we instead > thought we can make versioning work. Time will tell if that will work out > in practice, but at least the JSContact IANA registry policy clearly > defines that every change requires at least to bump the minor version, if > not the major version. We are right now doing this in > draft-ietf-calext-jscontact-uid > <https://datatracker.ietf.org/doc/draft-ietf-calext-jscontact-uid/>. > > Orthogonal to versions, JMAP allows to negotiate which properties are > supported using extensions, but that only is possible in context of that > transport protocol. > > I'm leaning towards aligning JSCalendar versioning with what we have in > JSContact, that is: introducing a version property and requiring > implementations to preserve unknown elements. But I also know this hasn't > proven in practice and it might cause different trouble than not doing any > versioning. > > What's your take on this? > > Thanks, > Robert > _______________________________________________ > calsify mailing list -- calsify@ietf.org > To unsubscribe send an email to calsify-leave@ietf.org >
- [calsify] Versioning JSCalendar? Robert Stepanek
- [calsify] Re: Versioning JSCalendar? Mauro De Gennaro
- [calsify] Re: Versioning JSCalendar? Robert Stepanek
- [calsify] Re: Versioning JSCalendar? Mauro De Gennaro
- [calsify] Re: Versioning JSCalendar? Michael Douglass
- [calsify] Re: Versioning JSCalendar? Mauro De Gennaro
- [calsify] Re: Versioning JSCalendar? Robert Stepanek
- [calsify] Re: Versioning JSCalendar? Robert Stepanek
- [calsify] Aligning JSContact/JSCalendar (was: Ver… Robert Stepanek
- [calsify] Re: Aligning JSContact/JSCalendar (was:… Neil Jenkins
- [calsify] Re: Aligning JSContact/JSCalendar (was:… Phillip Hallam-Baker
- [calsify] Re: Aligning JSContact/JSCalendar (was:… Neil Jenkins
- [calsify] Re: Aligning JSContact/JSCalendar (was:… Robert Stepanek
- [calsify] Re: Versioning JSCalendar? Phillip Hallam-Baker
- [calsify] Re: Versioning JSCalendar? Robert Stepanek
- [calsify] Re: Aligning JSContact/JSCalendar (was:… Robert Stepanek