Date
Date entry two ways at once: a text field accepting YYYY-MM-DD (or
MM/DD/YYYY, normalized on commit) and a popup calendar with full
keyboard support (arrows move by day/week, PageUp/Down by month). Days
outside the configured range are disabled in the calendar; typed text that
isn’t a date shows an error and blocks moving on, without storing
anything.
Configuration
Section titled “Configuration”| Option | Values | Default | Notes |
|---|---|---|---|
| Earliest date / Latest date | dates or empty | empty | Earliest must not exceed latest |
| Disallow past dates | on/off | off | Relative to the respondent’s local calendar date |
| Disallow future dates | on/off | off | Both flags together leave only “today” — the editor warns to use min/max instead |
"typeConfig": { "minDate": null, "maxDate": null, "disallowPast": false, "disallowFuture": false }Stored answer
Section titled “Stored answer”An ISO YYYY-MM-DD string — no time, no timezone, ever:
{ "visitDate": "2026-09-14" }“Past” and “future” are judged against the respondent’s local calendar date. Out-of-range but well-formed dates are stored and flagged by validation (“The date must be on or after {min}.” etc.), which blocks completing the screen until fixed.
Rule operators
Section titled “Rule operators”equals, not equals, before, after. Comparison is on the calendar
date; before/after are strict — a date equal to the condition value
matches neither. Unanswered matches nothing.