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

Ken Murchison <murch@fastmail.com> Tue, 20 February 2024 11:49 UTC

Return-Path: <murch@fastmail.com>
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 0512FC14F6AB for <calsify@ietfa.amsl.com>; Tue, 20 Feb 2024 03:49:43 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -7.197
X-Spam-Level:
X-Spam-Status: No, score=-7.197 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, NICE_REPLY_A=-0.091, RCVD_IN_DNSWL_HI=-5, RCVD_IN_ZEN_BLOCKED_OPENDNS=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01, 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=fastmail.com header.b="jYSxzhDR"; dkim=pass (2048-bit key) header.d=messagingengine.com header.b="eWDDvSrg"
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 qUcW8LvUMqg1 for <calsify@ietfa.amsl.com>; Tue, 20 Feb 2024 03:49:38 -0800 (PST)
Received: from wfhigh8-smtp.messagingengine.com (wfhigh8-smtp.messagingengine.com [64.147.123.159]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id AAD13C14F5F9 for <calsify@ietf.org>; Tue, 20 Feb 2024 03:49:38 -0800 (PST)
Received: from compute6.internal (compute6.nyi.internal [10.202.2.47]) by mailfhigh.west.internal (Postfix) with ESMTP id 991E9180007A; Tue, 20 Feb 2024 06:49:35 -0500 (EST)
Received: from mailfrontend2 ([10.202.2.163]) by compute6.internal (MEProxy); Tue, 20 Feb 2024 06:49:35 -0500
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=fastmail.com; h= cc:content-transfer-encoding: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=fm1; t=1708429775; x=1708516175; bh=WHxIsoxcfs4DFXH/8jrQu/3fpsfDkYAG6wmLW32DD3w=; b= jYSxzhDRiA60ahjYfjWjTG1CbSMEoIqWCszGSlanVQhxO923eChuTWRtTMVCPReI vWbl4ZIB/SQXOWDifeL/rzg3Wv32VcQWHHIilbhVogXdrN2IdB1LEi1bhkQPl1I0 5w+fnpkJuQM25veh/u8t88qxKCR3JMe1eFxe0p2j5ZK09hg/DKdUdqPiu6WXekTU C/WzAPBXfQAPQBEjthJM4q10UD86hGMU4bUg60lXBq/jRfQEmqsWyAyMb2N39XNP UVERCiPP7YUGMKG98IhFxfTaV3Un8qCzVtTydcOZp7aiqePCM8qI8KuFfVSWNcfK y8zG+yQPnVlFC9VGvGl5NA==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:content-transfer-encoding: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-proxy :x-me-sender:x-me-sender:x-sasl-enc; s=fm1; t=1708429775; x= 1708516175; bh=WHxIsoxcfs4DFXH/8jrQu/3fpsfDkYAG6wmLW32DD3w=; b=e WDDvSrgPcFSFkp0q4E4p3AtkuGkhu5hCh3BTcVm8m/hbbliI2sVxpbZd0IRx+C7g 86hxF1TFTx9nS0NZS4PvT9NSLUQ7khsG9P1CnpG9jhmzlMmrfRg7bGF4M/2bo4Tt NVAafNX3kcHY5K/AcOp4sagcpegaFz3NYy/qeqrrGGDvtedVL+b6kYJdCFUGIv2f jIu2hySih3kMzpx0Co8JrJQyHfgcYGfV5VSrlEU2ly7w73Z+yh79jd0unx9rT3xX 03RNqYv0mla8V83X3Gg3swKb5eNC2Bb+66rjPz9CuafcXdgVOwi4daFV25abN4Z9 bldzKoweVCKCVXsVY1wLA==
X-ME-Sender: <xms:zpHUZbM1gclJ6o1KbNHJ3J9QxaL-WURWnLfzqov_stFpJaU_AO2BNw> <xme:zpHUZV_LPOWmD9TodiGx9B8g1rnUCFuVrniUso14d7pj6igcbikxindsrYNoLGi33 nq0NVdo6tpE_g>
X-ME-Received: <xmr:zpHUZaRJjg6aEH2MV5SPCrwMzbDmU_9DeAoyoTwrUqieTstkwquOOHEoKNswwjlF9gDjSmeudaHtOq8ty6G-HvzQbsLqkLlgdg>
X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgedvledrfedtgdeffecutefuodetggdotefrodftvf curfhrohhfihhlvgemucfhrghsthforghilhdpqfgfvfdpuffrtefokffrpgfnqfghnecu uegrihhlohhuthemuceftddtnecunecujfgurhepkfffgggfuffvfhfhjggtgfesthejre dttdefjeenucfhrhhomhepmfgvnhcuofhurhgthhhishhonhcuoehmuhhrtghhsehfrghs thhmrghilhdrtghomheqnecuggftrfgrthhtvghrnhepgfekjeekgfevfeeftdfgheduje etffejudfffeeftddtfedvvddvffehgedtjeejnecuffhomhgrihhnpehivghtfhdrohhr ghenucevlhhushhtvghrufhiiigvpedtnecurfgrrhgrmhepmhgrihhlfhhrohhmpehmuh hrtghhsehfrghsthhmrghilhdrtghomh
X-ME-Proxy: <xmx:z5HUZfse0mj2ZSggtCkdK8ySG9nXokSnYlV8HlreUdW2glLuyS1bqA> <xmx:z5HUZTd39N6SZEDUC2Bx5ed6aiufBIqIoaaP7nW4BzvfXCNqrKX5DA> <xmx:z5HUZb3IzKqhHIA6A974X1QeM8RcJqGqiqjQl4wNXvfsAOLH1djCKQ> <xmx:z5HUZbHu8X4BF7GyaDJBxsspMIhynrIm3iCg3ClpP2_-md0GFGHzppV9kMA>
Feedback-ID: ibf914243:Fastmail
Received: by mail.messagingengine.com (Postfix) with ESMTPA; Tue, 20 Feb 2024 06:49:34 -0500 (EST)
Message-ID: <29c1a346-8c4b-2926-399f-804ccca1eece@fastmail.com>
Date: Tue, 20 Feb 2024 06:49:33 -0500
MIME-Version: 1.0
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Thunderbird/102.15.1
Content-Language: en-US
To: Hadrien Grasland <hadrien.grasland=40gmx.fr@dmarc.ietf.org>, calsify@ietf.org
References: <72ad7abd-be24-4abf-8bfb-e9727703c8ff@gmx.fr>
From: Ken Murchison <murch@fastmail.com>
In-Reply-To: <72ad7abd-be24-4abf-8bfb-e9727703c8ff@gmx.fr>
Content-Type: text/plain; charset="UTF-8"; format="flowed"
Content-Transfer-Encoding: 7bit
Archived-At: <https://mailarchive.ietf.org/arch/msg/calsify/e8e37iKLcxXcai1VJtdoh8bZZcs>
Subject: Re: [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 11:49:43 -0000

Hi Hadrien,

What you want to describe CAN be done with current RRULE syntax, just 
not as elegantly as what you propose.
You will find similar syntax in several VTIMEZONEs.

FREQ=MONTHLY;BYDAY=SA;BYMONTHDAY=13,14,15,16,17,18,19

FREQ=MONTHLY;BYDAY=TH;BYMONTHDAY=18,19,20,21,22,23,24


On 2/19/24 11:43 PM, Hadrien Grasland wrote:
> 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
>
> _______________________________________________
> calsify mailing list
> calsify@ietf.org
> https://www.ietf.org/mailman/listinfo/calsify

-- 
Kenneth Murchison
Senior Software Developer
Fastmail US LLC