[calsify] iCalendar recurrence rule issue: Cannot describe offset relative to base rule

Hadrien Grasland <hadrien.grasland@gmx.fr> Tue, 20 February 2024 04:43 UTC

Return-Path: <hadrien.grasland@gmx.fr>
X-Original-To: calsify@ietfa.amsl.com
Delivered-To: calsify@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 7689AC14CEE4 for <calsify@ietfa.amsl.com>; Mon, 19 Feb 2024 20:43:44 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.106
X-Spam-Level:
X-Spam-Status: No, score=-2.106 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, FREEMAIL_FROM=0.001, RCVD_IN_MSPIKE_H2=-0.001, RCVD_IN_ZEN_BLOCKED_OPENDNS=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01, URIBL_BLOCKED=0.001, URIBL_DBL_BLOCKED_OPENDNS=0.001, URIBL_ZEN_BLOCKED_OPENDNS=0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=gmx.fr
Received: from mail.ietf.org ([50.223.129.194]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id Ls5pdXrQfZnl for <calsify@ietfa.amsl.com>; Mon, 19 Feb 2024 20:43:40 -0800 (PST)
Received: from mout.gmx.net (mout.gmx.net [212.227.17.22]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange ECDHE (P-256) server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id E0EFBC14F600 for <calsify@ietf.org>; Mon, 19 Feb 2024 20:43:39 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=gmx.fr; s=s31663417; t=1708404218; x=1709009018; i=hadrien.grasland@gmx.fr; bh=zwemTY5l6uTWVd2FjrMBG0zZHkzYBRld+OljHuxKUvc=; h=X-UI-Sender-Class:Date:To:From:Subject; b=VAJ66qUVKlcJptkQkpFaPD7ADSge4PWeEeVuk5zriZdXbSfKTzkaXHYt0IhHbqKQ IMLpaUOhXK28M2jG9vVEa9LWBTG4vXFYr+cCl84VcetLIxMoF/G4gk6tw91DB0uhH 3Lyh1ysWfO32zqgg3iVQzoxSNwefzva1Er8ijaUYoiFfEbc5SevHla1FG2vtcabNA tyjXWXE/dL5Sp7jWDmRENnpRLGMM3Sd0Gp2tAdOok6/wXo1n5Bb21s3wmMaN+cmRe EZbIo9rD3fsqNJcGvHZ4OyRhYLulB6V0vc0CDsv5JDokiGIOws/s4AAL7JIv/i0Kz xe6Ojy4n0HLwVfyyKg==
X-UI-Sender-Class: 724b4f7f-cbec-4199-ad4e-598c01a50d3a
Received: from [192.168.0.13] ([91.160.160.63]) by mail.gmx.net (mrgmx105 [212.227.17.174]) with ESMTPSA (Nemesis) id 1N6KUT-1qsXrv08K1-016dDR for <calsify@ietf.org>; Tue, 20 Feb 2024 05:43:38 +0100
Message-ID: <72ad7abd-be24-4abf-8bfb-e9727703c8ff@gmx.fr>
Date: Tue, 20 Feb 2024 05:43:37 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
To: calsify@ietf.org
Content-Language: fr
From: Hadrien Grasland <hadrien.grasland@gmx.fr>
Content-Type: text/plain; charset="UTF-8"; format="flowed"
Content-Transfer-Encoding: quoted-printable
X-Provags-ID: V03:K1:uwOF4oFOW2ezFoYg5I/Qtz3L53jGYDFdUuqO8tzSeAbD65Wki53 /juZ+IS1VXVVFoWVFIH0NTA4E8PbBzgIxKTlYc5JiYnC55+WcXZgK14e/MQtKSNK0ffGE1A UytM6jW6EfKzIq8Sxz9tq8iCdPDFA1B1JBPNni0sVeDPxVOSdMs5GlFy/fwWxYLK/I5dMeL Qk1q4rAJ7Z3x8h86c0EVQ==
UI-OutboundReport: notjunk:1;M01:P0:cdRAGfpVTH8=;a8+8bEQ7HNiTZIq2YrazUKCaCKD UeeYWkfGO0F6MOGTnADY6oYhORngSkA1DrSgYloIFl40ngE3l3pIF7sTZq1RAr6AGWuthBrFP 1EvjyJw8Dk9jC9j7CaHrjqKx3kSx88eGArfvpJUk6we4CtvLr69nm3wURKfWCfaMwBJL/aq/D ZG5DddvID3kSEOG/tuyAgMo8SHngGegMrNCCFm8Mh/M3vIIbTBUOp6pAdMx4MLFB2NK5M09oU eDJZPcDlvrN2M9MtOZwmpqz2EaCf54t6xJv8PXWnPofjMhVXEbhRiMkhhn7bonX5jmqiPY+P6 ik6wrzQARo7a+szVEysZEEPdEGaI/siohDjRi+eEkCKXvG774fQWAN3jrDPk8WlxXzh3zc14f 5yqaQEQRbTw5hFOFBoj3cUl9DT+HOXBPwT0g+i10AL7PCkmWWkMTLx31v9ygDbe1loELcxc0o zLd8RWONVgr1pOZ+vuTeVskQn70a+SJp61NiynBKLZOYCq1cfw9btFc6OApMqc7ayQkkInDKG bPC9w+6BjCrtdNrbcXIpixN9j9Nt/dJKmjVEKlYFTl1j37dUP0c+yRBYWedfit+mh5Dqsfmwm gDuzlZTGr1CrhnQgSLQ+ncfbdmGerapYbFiNvC6XiGeRPbqGqmIqFGdUNZ1RIcyuJBpyVohHt rYY85fsBWnlEm81wMD4N+BJK9IO6lAphLPaxGWRDa1klywr3siaEPv8njfgdNziLyG3DRZOZz wnlKGgTD4/BIL1jjYO/tClhH04YZVAz8Qj/rJRuMqTDgwgSUBJGVa2zrwWLyb5kog6B2pbCWX +/BgykstY9HxRd5VIdDtd2kkfqw5+BZNTxmY0s73Pf0Us=
Archived-At: <https://mailarchive.ietf.org/arch/msg/calsify/AWMXnBZMEavErB8u-nbTe8IzxoQ>
Subject: [calsify] iCalendar recurrence rule issue: Cannot describe offset relative to base rule
X-BeenThere: calsify@ietf.org
X-Mailman-Version: 2.1.39
Precedence: list
List-Id: Calendaring and Scheduling Standards Simplification <calsify.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/calsify>, <mailto:calsify-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/calsify/>
List-Post: <mailto:calsify@ietf.org>
List-Help: <mailto:calsify-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/calsify>, <mailto:calsify-request@ietf.org?subject=subscribe>
X-List-Received-Date: Tue, 20 Feb 2024 04:44:34 -0000

Hi,

I am reporting this by e-mail because the "issue tracker" link in
https://datatracker.ietf.org/wg/calext/about/ is dead. You may want to
fix it.

As a user of iCalendar-based applications, one shortcoming of recurrence
rules which regularly bites me is that I may have a recuring event which
is well described by the existing recurrence rules (e.g. every 3rd
monday of the month => FREQ=MONTHLY;INTERVAL=1;BYDAY=3MO), but then I
need to schedule a preparatory/cleanup step some time before/after this
main event (e.g. the Saturday before, the Thursday after).

The existing recurrence rule vocabulary cannot describe the recurrence
rule associated with these preparatory and cleanup steps well. It may
seem like in the above example, BYDAY=2SA would fit the "Saturday
before" use case well, but it actually doesn't work because on some
months, like the upcoming March 2024, the first Saturday of the month
does not fall on the same week as the first monday of the month.
Symmetrically, a "day X of week N+1" approximation for a positive offset
rule would not work when the base rule is closer than a week to the last
day of the target month on some months (usually February).

This sort of relative recurrence rule would be better adressed by a
supplementary recurrence rule field which enables one to offset the
result of the recurrence rule computation by a certain number of days.
In the above example, an extra OFFSET field like
FREQ=MONTHLY;INTERVAL=1;BYDAY=3MO;OFFSET=-2D could handle the "Saturday
before" use case, and an OFFSET=+3D variation could handle the "Thursday
after" use case.

Although the above strawman syntax leaves room for specifying offsets in
units other than days, I'm not sure if all units would make sense. Weeks
are fine (just multiply by 7), but months would be a harder to spec out
(if I have scheduled something a month before the 30th of March, should
the occurence be dropped or shifted?). Speaking for myself, a day-only
offset field would handle every use case I've had so far, so such
expressivity may not be necessary.

Cheers,
Hadrien