Examples
Examples
Try the starting example
- Tasks [ID,first due ISO date,interval days]; enter JSON
- [["A","2026-11-01",7],["B","2026-11-03",14]]
- Contract start ISO date
- 2026-11-01
- Contract end excluded ISO date
- 2026-12-01
- Forbidden ISO dates; enter JSON
- ["2026-11-08"]
- Periodic calendar [task,nominal due,scheduled] (JSON)
- [["A","2026-11-01","2026-11-01"],["B","2026-11-03","2026-11-03"],["A","2026-11-08","2026-11-09"],["A","2026-11-15","2026-11-15"],["B","2026-11-17","2026-11-17"],["A","2026-11-22","2026-11-22"],["A","2026-11-29","2026-11-29"]]
- Unscheduled occurrences (count)
- 0
Try another scenario
- Tasks [ID,first due ISO date,interval days]; enter JSON
- [["A","2026-11-02",10],["B","2026-11-04",14]]
- Contract start ISO date
- 2026-11-01
- Contract end excluded ISO date
- 2026-12-01
- Forbidden ISO dates; enter JSON
- ["2026-11-12","2026-11-13"]
- Periodic calendar [task,nominal due,scheduled] (JSON)
- [["A","2026-11-02","2026-11-02"],["B","2026-11-04","2026-11-04"],["A","2026-11-12","2026-11-14"],["B","2026-11-18","2026-11-18"],["A","2026-11-22","2026-11-22"]]
- Unscheduled occurrences (count)
- 0
Calculation method
Calculation method
Periodic calendar [task,nominal due,scheduled] (JSON)
Generate firstDue+k×interval in horizon; move each due forward past forbidden dates; null if shifted beyond horizon; next recurrence remains anchored to nominal due.
Unscheduled occurrences (count)
Count occurrences with null date after bounded shift.
Symbols and units
- a
- Tasks [ID,first due ISO date,interval days]; enter JSON
- b
- Contract start ISO date
- c
- Contract end excluded ISO date
- d
- Forbidden ISO dates; enter JSON
Use the units shown. A list keeps the order in which you enter its values. The symbol ^ means “raised to the power of”.
Assumptions & limits
Assumptions & limits
- Fixed-day interval recurrence shifted forward to first allowed date, with collisions retained as separate work items. Supported limits: All numeric inputs and computed intermediates must remain finite. Supported numeric input magnitude is zero or 1e-12 through 1e12 in absolute value; reject values outside this bounded range. All lists/JSON record tables are limited to 100 records unless a stricter bound is stated; reject malformed record arity and wrong member types. Valid dates, horizon1..366 days; positive integer intervals; forbidden dates<=366; <=100 tasks.
Are these inputs private?
These calculations run in your browser. A shared link contains the values you choose to share. Only questions submitted to the separate AI finder are sent to OpenAI.