Replies: 3 comments
|
Context from #974, which touched the same function. While checking this wish I found a bug underneath it, and it was not the one the numbers suggested: That is fixed and shipping. What is not fixed is the residue, and it is exactly what this wish would solve: the next occurrence is computed from the clamped date, so a series begun on 31 January stays on the 28th from February onwards. For that to stop, the rule has to carry the intended day - which is Two things that are worth deciding together with it rather than after it:
No decision made yet - this is a note so the connection is not lost. |
|
Decided, and implemented in #983: The repetition form gets one new choice, "on the last day of the month", and it appears only under "monthly". That is the one statement a start date cannot express, because it means a different day every month. "On the 15th" needs no field - you create the series on the 15th - and The reason #978 came along is that both had the same cause: the intended day was derived from the previous occurrence, so a clamp in a short month rewrote it for good. Where the caller knows DTSTART - calendar expansion, ICS parser, series arithmetic - it now passes it through as an anchor, and a yearly series on 29 February comes back in the next leap year. Task series get no anchor: a task series is a chain of separate rows with no memory of its origin. Nothing existing is migrated. A |
|
Shipped in v2.61.0, @PapaZhans. The repetition form has a new choice under "monthly": on the last day of the month, whatever length that month has. One correction to my earlier comment here. I wrote that it was implemented in #983, and the behaviour changed after that in #984. The server does not move your start date onto the first occurrence. If you create a series on the 15th with "last day of the month", the entry keeps the 15th and the calendar shows 31 January as the first appointment - the rule is applied when the series is displayed, not written into the record. Pulling the date at save time was tried and taken back: the reminder, the lead time and the follow-up instance all read that date directly, and none of them would have learned that the server changed it. Two consequences worth knowing. In a task, the rule describes the next run only - the task stays due on the date you entered, and the run after you complete it lands on the month end. The hint under the switch says so in each module now, because one shared sentence was a promise that only held in the calendar. And an Outlook push sends such a series without its recurrence rather than with a different one: Graph has no absolute last-day pattern, and the closest-looking substitute selects a different day. Existing series are untouched. Related, from the same work: a yearly series on 29 February now returns in the next leap year instead of dropping to the 28th for good. |
Uh oh!
There was an error while loading. Please reload this page.
This is utilized in many other task platforms and is very helpful for bill paying and other reasons. If it wouldn't be too difficult to integrate, please consider it. You have an awesome project!
All reactions