[calsify] Re: Question about organizerCalendarAddress in JSCalendar bis

Robert Stepanek <rsto@fastmailteam.com> Tue, 07 October 2025 07:20 UTC

Return-Path: <rsto@fastmailteam.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 99A8B6E72108 for <calsify@mail2.ietf.org>; Tue, 7 Oct 2025 00:20:17 -0700 (PDT)
X-Virus-Scanned: amavisd-new at ietf.org
X-Spam-Flag: NO
X-Spam-Score: -2.798
X-Spam-Level:
X-Spam-Status: No, score=-2.798 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, RCVD_IN_VALIDITY_SAFE_BLOCKED=0.001, SPF_PASS=-0.001] autolearn=ham autolearn_force=no
Authentication-Results: mail2.ietf.org (amavisd-new); dkim=pass (2048-bit key) header.d=fastmailteam.com header.b="TIkjXxQw"; dkim=pass (2048-bit key) header.d=messagingengine.com header.b="lrcYSQkZ"
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 cSH1aai0rtAz for <calsify@mail2.ietf.org>; Tue, 7 Oct 2025 00:20:16 -0700 (PDT)
Received: from fout-b6-smtp.messagingengine.com (fout-b6-smtp.messagingengine.com [202.12.124.149]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (P-256) server-digest SHA256) (No client certificate requested) by mail2.ietf.org (Postfix) with ESMTPS id 5F6D46E720F8 for <calsify@ietf.org>; Tue, 7 Oct 2025 00:20:16 -0700 (PDT)
Received: from phl-compute-02.internal (phl-compute-02.internal [10.202.2.42]) by mailfout.stl.internal (Postfix) with ESMTP id 463521D002A1 for <calsify@ietf.org>; Tue, 7 Oct 2025 03:20:10 -0400 (EDT)
Received: from phl-imap-15 ([10.202.2.104]) by phl-compute-02.internal (MEProxy); Tue, 07 Oct 2025 03:20:10 -0400
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= fastmailteam.com; h=cc:content-type:content-type:date:date:from :from:in-reply-to:in-reply-to:message-id:mime-version:references :reply-to:subject:subject:to:to; s=fm3; t=1759821610; x= 1759908010; bh=TG6K6AY9gmFCtWxLvQn/7bPsTYe7FFbelp+OtpcKlf8=; b=T IkjXxQw3l+p3zMPNmeK8AaKGIYSx2GN61Dk0t2ox2vm+wCL8LWa8cisapgWNeUM7 ebfliy9ZrKxJsXPgrr7Qoy+RT+JJFX31QGGGFiRc4YPdY2hY5NHtaeHeA1oTV95j Z4kkuOO53gI8hKKWNE4EiBp/CFYpVZGVplp3b7G1sSoAE8dOPRaXom8/HjmsDd6R FgY5/zZvrNzhu46ZAbHMvUosFHC0MUuZkH0OJvUfOM0AfAiFWs8HqxIv/Ny5E8H0 lNcDT0WavSSrWOU2jJ7GQ3VJrTTk+AXq2fnAIpDpTFqFhYCm4/FNifX8HhdWX4G/ Ex61qpa73GCY4F9iGdaAg==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:content-type:content-type:date:date :feedback-id:feedback-id:from:from:in-reply-to:in-reply-to :message-id:mime-version:references:reply-to:subject:subject:to :to:x-me-proxy:x-me-sender:x-me-sender:x-sasl-enc; s=fm2; t= 1759821610; x=1759908010; bh=TG6K6AY9gmFCtWxLvQn/7bPsTYe7FFbelp+ OtpcKlf8=; b=lrcYSQkZmn4pHMgLXWwjtiqTrq0aC/ppJlZRWnjOKmPnXzDYH4l Yb2Q0j6BF35C8/uqyAsAXZM3bb8q/j/fCzd+6ztWKXdfFuPPWZZVrqgMG9gd0EZD tTpFcx0hKTnPTw1v/di1voXoHqVHLe4JhexYdM6iHzvW2l9wBYzMNhXdLCnKctL+ yxDTAQZgfZu3XeDVFuRcvSYTeGtrE0NPaWQstQQvd7ye4Dhh2Fq38HE3BL2JvtZT EatdOIi5bbR6Sh0fKhRzdJv+4uJQejTH05uRqY7/KxnkDsEGiDc/XyPP6Mxy2CJ2 PLuG5zqeVk9/EhhZ7ppv79hdNA69iEht1Yg==
X-ME-Sender: <xms:Kb_kaCY-3fyD8XypBaPSsa7mYEXb6UNwrjIIbOAqAdBH_i3s2Pjcdw> <xme:Kb_kaANuoIqkF2n8CZOJ9ysBR99TxFobv3BvYXb0mIAtOGQKRZ9SX7AFLUPojT5ax tdd5-r1ephWBCf0JEjj7X3V5uRxnY1A84eb532F9Y1Sku8X>
X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeeffedrtdeggdelleektdcutefuodetggdotefrod ftvfcurfhrohhfihhlvgemucfhrghsthforghilhdpuffrtefokffrpgfnqfghnecuuegr ihhlohhuthemuceftddtnecunecujfgurhepofggfffhvffkjghfufgtsegrtderreertd ejnecuhfhrohhmpedftfhosggvrhhtucfuthgvphgrnhgvkhdfuceorhhsthhosehfrghs thhmrghilhhtvggrmhdrtghomheqnecuggftrfgrthhtvghrnhepteevgfdtvdduhfevje eiteejfedtheelieevvdeffeelteetjeeigedufeehjefhnecuffhomhgrihhnpehirghn rgdrohhrghdprhhftgdqvgguihhtohhrrdhorhhgnecuvehluhhsthgvrhfuihiivgeptd enucfrrghrrghmpehmrghilhhfrhhomheprhhsthhosehfrghsthhmrghilhhtvggrmhdr tghomhdpnhgspghrtghpthhtohepuddpmhhouggvpehsmhhtphhouhhtpdhrtghpthhtoh eptggrlhhsihhfhiesihgvthhfrdhorhhg
X-ME-Proxy: <xmx:Kb_kaP9n-oOqAvrrN__cI0odyRkU_8Dli1GByRt6iDOH_cEG1orajw> <xmx:Kb_kaCp2wdIhjCw01gD1T6WOdQaj5LWE5mbef_73UdTlLTV_KmeN8g> <xmx:Kb_kaCp3Y2OBcuxnNeFl6yNgks1XrA0_9sS9K-2gFDJXhsyxnmwi4g> <xmx:Kb_kaAn6ll3xR349v9U0ShLFGBguTDXT6ZV-vaQJQ3T34IKH83lh5Q> <xmx:Kr_kaM3Td5vrlxm8-KRjofSUU-1qTTIe_9pZ38GzFXEm0zPShafw0Qs8>
Feedback-ID: ia5d944da:Fastmail
Received: by mailuser.phl.internal (Postfix, from userid 501) id D338A78016E; Tue, 7 Oct 2025 03:20:09 -0400 (EDT)
X-Mailer: MessagingEngine.com Webmail Interface
MIME-Version: 1.0
X-ThreadId: ANd2G7Fm50bB
Date: Tue, 07 Oct 2025 09:19:48 +0200
From: Robert Stepanek <rsto@fastmailteam.com>
To: calsify@ietf.org
Message-Id: <c5c80aa9-7f4b-4be5-b1e8-ffbcb4193ff3@app.fastmail.com>
In-Reply-To: <0851af7a-73e6-4e65-ab90-10fa32b3a9af@dogfoodapp.fastmail.com>
References: <FCD2E6CD-63E5-4E9E-AE36-B3755E4E9060@stalw.art> <f64ae60a-64df-4ddd-958f-2b69ae36efc0@dogfoodapp.fastmail.com> <B0709D29-A239-432F-B382-ABF66F404958@stalw.art> <0851af7a-73e6-4e65-ab90-10fa32b3a9af@dogfoodapp.fastmail.com>
Content-Type: multipart/alternative; boundary="969c21a0cc2746049dbe551c50df5fe6"
Message-ID-Hash: C75NGJ75TRQ7YYKFCHKGCCUEZYJY3OM7
X-Message-ID-Hash: C75NGJ75TRQ7YYKFCHKGCCUEZYJY3OM7
X-MailFrom: rsto@fastmailteam.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
X-Mailman-Version: 3.3.9rc6
Precedence: list
Subject: [calsify] Re: Question about organizerCalendarAddress in JSCalendar bis
List-Id: "Calendaring, Contacts and Scheduling Standards Maintenance" <calsify.ietf.org>
Archived-At: <https://mailarchive.ietf.org/arch/msg/calsify/ek8HEIS0QEMdeoMoqOd4GPLjmKs>
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>

On Fri, Sep 12, 2025, at 7:54 AM, Neil Jenkins wrote:
> On Mon, 1 Sep 2025, at 18:41, Mauro De Gennaro wrote:
>> However, since organizerCalendarAddress maps directly to ORGANIZER in iCalendar, and the "owner" role really comes from JMAP for Calendars permissions, do you think it would make sense to remove "owner" from JSCalendar and instead document it under section 5.1 (“Additional JSCalendar properties”) in JMAP for Calendars alongside other permissions-related properties like mayInviteSelf and mayInviteOthers?
> 
> I don't think this is tied directly to JMAP, and it's better to keep the "owner" definition with the other possible values in the main document.

I am not convinced anymore that the current guidance in draft-ietf-calext-jscalendar-icalendar-18 for the JSCalendar "owner" and "attendee" roles is sound. We should either define how to convert them to a standard iCalendar element, or instead they should become reserve them for JMAP for Calendars, just as we did for all the other scheduling properties of RFC 8984 that do not cleanly map to iCalendar scheduling.

Defining a standard element for the "owner" role should be straight-forward as long as the role is only informational, e.g. if it's just a way for the organizer to state to attendees who "owns" the event. In this case, we could register a new OWNER participation role value at IANA (see https://www.iana.org/assignments/icalendar/icalendar.xhtml#participation-roles) That aligns with RFC 5446 (iTIP) which states in section 1.3:

Note that "ROLE" is also a descriptive parameter to the iCalendar
   "ATTENDEE" property.  Its use is to convey descriptive context about
   an "Attendee" -- such as "chair", "required participant", or "non-
   required participant" -- and has nothing to do with the calendaring
   workflow.

I have not tested yet how existing iCalendar implementations deal with new ROLE parameter values, but its ABNF allows extension values: https://www.rfc-editor.org/rfc/rfc5545.html#section-3.2.16. I optimistically expect existing implementations to not care and ignore the unknown ROLE value.

If the "owner" role instead is something that requires enforcement - and the language in the JMAP for Calendars spec suggests that - then preserving it in iCalendar either as a ROLE parameter or JSPROP property is not a good idea. The role value should then rather be reserved for JMAP and only become a standard JSCalendar element when its clear how it relates to iTIP and how to deal with implementations that don't enforce it.

In any case we should update the jscalendarbis I-D to state if at least one participant in an event must have the "owner" role. The current I-D does not mention it either way,

For the "attendee" role I am starting to think to remove it entirely. There is no equivalent in iCalendar and in lack of any other role, it seems obvious that a participant in an event is "is expected to be present at the event".