Menu

Search toolsChangelog

to move to openDescribe the problem, not the tool

Dates every two weeks from 1 August 2026

Starting on Saturday 1 August 2026, every two weeks stays on a Saturday: 15 August, 29 August, 12 September and so on. The twelfth date is 2 January 2027, exactly 154 days after the anchor.

The anchor. Monthly and yearly dates are always derived from this original day, so a short month cannot cause permanent drift.

Days and weeks are fixed lengths. Months and years retain the anchor's calendar day when that day exists.

Includes the first date. The full list downloads even when the table preview is collapsed.

This decides what January 31 monthly means in February, and what February 29 yearly means in a non-leap year.

Last date
2027-01-02
Dates generated
12
First to last (days)
154
Last date falls on
Saturday
Dates moved to month-end
0

The calendar

recurring-dates-2026-08-01.ics · 2.4 KB

One standards-based all-day VEVENT per row, with exclusive next-day DTEND values and stable event identifiers.

Every date in the schedule

12026-08-01Saturday0Anchor date
22026-08-15Saturday14Exact anchor day
32026-08-29Saturday28Exact anchor day
42026-09-12Saturday42Exact anchor day
52026-09-26Saturday56Exact anchor day
62026-10-10Saturday70Exact anchor day
72026-10-24Saturday84Exact anchor day
82026-11-07Saturday98Exact anchor day
92026-11-21Saturday112Exact anchor day
102026-12-05Saturday126Exact anchor day
112026-12-19Saturday140Exact anchor day
122027-01-02Saturday154Exact anchor day
What to take away
  1. A two-week interval is exactly 14 days, so the weekday never changes.

  2. Twelve dates contain eleven intervals, which is why the span is 154 rather than 168 days.

  3. Each row becomes a separate all-day event in the downloadable calendar.

How it works

How it is done

  1. Parse the first date as a Gregorian calendar anchor, then bound the interval and requested occurrence count before allocating the schedule.
  2. For days and weeks, add a fixed number of UTC calendar days. For months and years, derive every candidate from the original year, month and day rather than from the previous result.
  3. If a candidate month lacks the anchor day, either use its final day or omit that candidate, exactly as selected. Continue until the requested number of actual dates has been produced.
  4. Write the rows as separate RFC 5545 all-day VEVENT components. DTSTART is the date itself, DTEND is the following date because an all-day end is exclusive, and every content line is folded at 75 UTF-8 octets.

What it assumes

  • The calendar is Gregorian and date-only. There is no time of day, time zone, daylight-saving transition or reminder to infer.
  • The first date counts as occurrence one. Twelve dates therefore contain eleven intervals, not twelve.
  • Month-end mode never changes the anchor. January 31 can become February 28 and then return to March 31 because each candidate is derived from the original day 31.
  • Skip mode skips a missing candidate, not an interval. It continues through later candidate months or years until the requested number of real dates exists.
  • Calendar years beyond 9999 cannot be represented by RFC 5545's four-digit DATE value and are not emitted.

Common questions

Why does a twelve-date fortnightly schedule span only twenty-two weeks?

The first date is already occurrence one. Twelve dates have eleven gaps between them, and eleven two-week gaps make twenty-two weeks.

Will a fortnightly schedule ever change weekday?

No. Fourteen days is exactly two seven-day weeks, so every occurrence has the same weekday regardless of month or year boundaries.

Sources

The full method, worked example and every assumption behind this figure are on Recurring Date Schedule Maker.