Ncal/ncal
RomanNum3ral f3f8d76cda
Add monthly-ordinal recurrence support ("the 3rd Thursday", "the last Friday")
Extends the Repeats picker's BYDAY support (which deliberately excluded
ordinaled rules) to cover FREQ=MONTHLY with a single ordinaled BYDAY, via
RFC 5545's ByDay(num, weekday) - "the 3rd Thursday of the month" or "the
last Friday", not just a fixed day-of-month.

- CalendarItem.recurrenceByDayOrdinal (1..4, or -1 for "last") pairs with the
  existing recurrenceByDay field, reused as a singleton for this mode.
- RecurrenceUtils gets a new walker using TemporalAdjusters.dayOfWeekInMonth,
  correctly skipping months where the Nth weekday doesn't exist (RFC 5545:
  no occurrence that month, not a rollover) and correctly preserving local
  time-of-day across DST boundaries.
- Repeats picker: a 2-item "Monthly on day N" vs "Monthly on the Nth
  <weekday>" dropdown, weekday always derived from the current Starts/Due
  date rather than picked separately.

Verified live against the real Nextcloud server (created a "3rd Friday"
event, confirmed it round-tripped to the correct RRULE and resolved to the
correct date next month) and cleaned up afterward.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-07-18 05:56:25 -04:00
..
app Add monthly-ordinal recurrence support ("the 3rd Thursday", "the last Friday") 2026-07-18 05:56:25 -04:00
gradle/wrapper Initial commit: NCal, a native Nextcloud CalDAV client for Android 2026-07-16 18:19:03 -04:00
.gitignore Initial commit: NCal, a native Nextcloud CalDAV client for Android 2026-07-16 18:19:03 -04:00
build.gradle.kts Initial commit: NCal, a native Nextcloud CalDAV client for Android 2026-07-16 18:19:03 -04:00
gradle.properties Initial commit: NCal, a native Nextcloud CalDAV client for Android 2026-07-16 18:19:03 -04:00
gradlew Initial commit: NCal, a native Nextcloud CalDAV client for Android 2026-07-16 18:19:03 -04:00
gradlew.bat Initial commit: NCal, a native Nextcloud CalDAV client for Android 2026-07-16 18:19:03 -04:00
settings.gradle.kts Initial commit: NCal, a native Nextcloud CalDAV client for Android 2026-07-16 18:19:03 -04:00