Connecting the owner's DNS3 Radicale calendar (appt.sami) as a DashCaddy
calendar source exposed a real parser bug: extractCalendarsAndEvents split
multistatus on <\/[\w-]+:response> — the namespace prefix was REQUIRED, but
Radicale emits bare <response> in the default DAV namespace. Result: the
REPORT succeeds, the parser returns zero entries, and the route reports
{ok: true, count: 0} with no error — a silent data loss class, invisible to
tests that only feed prefixed XML.
Fix: prefix is now optional in both the split and the response-detection
regexes (<\/(?:[\w-]+:)?response>). Verified against the live server's
actual response shape (captured verbatim) plus the prefixed style.
Tests: NEW __tests__/calendar/caldav-default-ns.test.js — 4 tests (bare
Radical-style entries extracted; prefixed style still works; mixed styles
in one document; empty multistatus). Existing calendar suites: 15 pass
unchanged. eslint 0 errors on touched files.