[JMAP] JMAP for Calendars comments

Mauro De Gennaro <mauro@stalw.art> Sun, 05 October 2025 14:55 UTC

Return-Path: <mauro@stalw.art>
X-Original-To: jmap@mail2.ietf.org
Delivered-To: jmap@mail2.ietf.org
Received: from localhost (localhost [127.0.0.1]) by mail2.ietf.org (Postfix) with ESMTP id 0291A6D9674D for <jmap@mail2.ietf.org>; Sun, 5 Oct 2025 07:55:35 -0700 (PDT)
X-Virus-Scanned: amavisd-new at ietf.org
X-Spam-Flag: NO
X-Spam-Score: -0.699
X-Spam-Level:
X-Spam-Status: No, score=-0.699 tagged_above=-999 required=5 tests=[BAYES_05=-0.5, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, 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=stalw.art header.b="Hd1Icfhe"; dkim=neutral reason="invalid (unsupported algorithm ed25519-sha256)" header.d=stalw.art header.b="ZAwPXazj"
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 bhABzouxsbLO for <jmap@mail2.ietf.org>; Sun, 5 Oct 2025 07:55:33 -0700 (PDT)
Received: from mail.stalw.art (mail.stalw.art [135.181.195.209]) (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 BC7586D96745 for <jmap@ietf.org>; Sun, 5 Oct 2025 07:55:33 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; s=202404r; d=stalw.art; c=relaxed/relaxed; h=To:Date:Message-Id:Subject:From; t=1759676126; bh=W9LnVzbd93G03RkJK4NIdf3 O5wwrK2tzWmx94rO+nIQ=; b=Hd1IcfhelU7fHXNcDF8+aLY7F2W4Cfhq7zo0pDKcnwJJrO0A51 IMVjJdDTMymd/kBhKDvKUB3bHc+tXem9qf585LMG/DTIoppKPi5oDBEeutjh/xK6ONCYNcuMjgc 1kncZOwnA9aZpXNwccSmhnViqjloO1TiLcPoXbUHUx7n9i/1fSj+c2UyDPlojC9TnIRJF2Ym9tR +kuoz/CKwW19NmK1kdIouDR6ejUUT9N6ScKXLQV50UwV+c1FBiBfLq0qAArOsvnyEta7amJljJM tGhQ6b9FCYK/UkZndWRbWrGN4qiouZdzCMC5Wh4YQXgDlCUKL2zrcxZVbXbDVx3/8Nw==;
DKIM-Signature: v=1; a=ed25519-sha256; s=202404e; d=stalw.art; c=relaxed/relaxed; h=To:Date:Message-Id:Subject:From; t=1759676126; bh=W9LnVzbd93G03RkJK4NIdf3 O5wwrK2tzWmx94rO+nIQ=; b=ZAwPXazjN8Hn7Su83VxxECood7YfDgy5TriU8Q+Qnzn1hlgeSF 3CLHyggNfj6vPLeK35UzL6tb1KvgWoaTWECg==;
From: Mauro De Gennaro <mauro@stalw.art>
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: quoted-printable
Mime-Version: 1.0 (Mac OS X Mail 16.0 \(3731.700.6.1.11\))
Message-Id: <101DEC25-A12F-4063-90FB-446C6E5190BF@stalw.art>
Date: Sun, 05 Oct 2025 16:55:15 +0200
To: IETF JMAP Mailing List <jmap@ietf.org>
X-Mailer: Apple Mail (2.3731.700.6.1.11)
Message-ID-Hash: UF52RMM7GJ4HYVQCGJVDAQ7FHCZ5PX5L
X-Message-ID-Hash: UF52RMM7GJ4HYVQCGJVDAQ7FHCZ5PX5L
X-MailFrom: mauro@stalw.art
X-Mailman-Rule-Misses: dmarc-mitigation; no-senders; approved; emergency; loop; banned-address; member-moderation; header-match-jmap.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: [JMAP] JMAP for Calendars comments
List-Id: JSON Meta Access Protocol <jmap.ietf.org>
Archived-At: <https://mailarchive.ietf.org/arch/msg/jmap/qHiVrRWyK1VcorTHZEa5NJRydoE>
List-Archive: <https://mailarchive.ietf.org/arch/browse/jmap>
List-Help: <mailto:jmap-request@ietf.org?subject=help>
List-Owner: <mailto:jmap-owner@ietf.org>
List-Post: <mailto:jmap@ietf.org>
List-Subscribe: <mailto:jmap-join@ietf.org>
List-Unsubscribe: <mailto:jmap-leave@ietf.org>

Hi Neil,

I’m in the process of implementing JMAP for Calendars and while reading through the latest draft (-24), I noted a few small issues and some comments I wanted to share:

First, a few typos and editorial things I spotted:

- Section 4: “initally” should be “initially”.

- Section 1.5.1: “can be can assigned” -> “can be assigned”.

- Section 5.1: it says “four new JSCalendar properties” but only three are defined (mayInviteSelf, mayInviteOthers, hideAttendees).

- Section 5.6.1: the sentence “Splitting an event however is problematic…” may read better as “However, splitting an event is problematic…”.


And here are a few comments and suggestions I wanted to flag as well:

- Section 2.2 (Principal/getAvailability): Returning the full/partial event in the availability response could make responses unnecessarily large (even when using ranges). In addition to this, clients may already have the event cached. It might be better to return only the synthetic ids of the events and let clients fetch the details with a CalendarEvent/get call using a result reference to list/*/eventIds in the Principal/getAvailability response.

- Section 3 (ParticipantIdentity): It’s not clear whether participant identities are associated with each calendar or if they’re account-level objects like email identities. If they are calendar-specific, which permissions apply when viewing or modifying them?

- Default Alerts: It might be worth clarifying that only OffsetTrigger alerts should be used in set requests. AbsoluteTrigger does not make sense for a default alert.

- Permissions (Section 4): I think mayRSVP should be renamed to mayUpdateRSVP, since it refers to the permission to update an RSVP status rather than the permission to RSVP.

- Section 5.11.1 (Filtering): Some filters accept null as an argument. In some cases this makes sense (to indicate absence of a value), but for others like text, before, or after it doesn’t really make sense.

- iCalComponent: Since the iCalComponent property may include unnecessary converted data (like VTIMEZONE components) that most JMAP Calendar clients won’t care about, maybe it’s worth suggesting that such components and properties should not be returned by default unless explicitly requested.


Thanks,
Mauro