Study visit windows

Clinical Trial Visit Window Calculator

Generate target, earliest and latest clinical study visit dates using protocol-defined offsets, asymmetric windows and optional working-day rules.

Do not enter participant-identifying information

No names, initials, participant/subject IDs, MRNs or dates of birth — anywhere on this page, including in visit labels. Nothing you enter is saved or sent anywhere; it stays in your browser only, for this visit.

Custom bank/site holidays (optional)

No custom holidays added yet.

Loading today's date…

VisitDayTarget dateEarliestLatestAssumptions
BaselineLoading today’s date…
Visit 2Loading today’s date…
Fix the highlighted fields above to enable export.

Adjustment rules and assumptions above are also summarized in each row’s Assumptions column. Working-day tolerance excludes Saturdays, Sundays and the custom holidays you add above only — there is no automatic country or regional holiday database.

How this calculator works

Set one anchor date (for example, the date of first study drug administration or randomization), then add as many visit rows as your protocol's schedule of events needs. Each visit is computed independently from that one anchor — never chained from another visit's own result.

Choose whether the anchor counts as Day 0 or Day 1 (with no Day 0) — both are real conventions used across different protocols and institutions, and this page treats it as a calculation choice you make to match your own protocol, not a universal rule it enforces on you. For a day-based visit, enter the protocol's own scheduled study-day number directly — entering "14" always means Day 14, computed correctly whether that's 14 days after the anchor (Day 0 convention) or 13 days after it (Day 1 convention, since the anchor itself is already Day 1). Switching the convention recalculates every day-based visit's actual date to match your new choice, not just its displayed label. Week, month and year offsets are a separate, explicit elapsed count from the anchor and are never affected by this convention.

Each visit's early and late tolerance can differ — a target of Day 28 with a −3/+7 window is a normal asymmetric case, not a special one. Set both to 0 for a locked, zero-width target date.

Tolerance can be counted in calendar days or working days. Working-day tolerance skips weekends and the custom bank/site holiday dates you add below; there is no automatic country or regional holiday database, since holiday calendars depend on jurisdiction, region and year. An optional adjustment can move a visit's target date to the nearest previous or next working day — the page always shows the raw calculated date alongside the adjusted one when they differ, and flags a row if that adjustment would push the target outside its own earliest–latest window.

Calendar-month and calendar-year offsets preserve the day of month when possible, clamping to the target month's final valid day when it doesn't have that day (for example, one month after 31 January lands on 28 or 29 February).

Copy the results table for pasting into a spreadsheet, or download it as a CSV file — both are generated entirely in your browser. Nothing you enter is saved, sent anywhere, or available on a future visit.

The tool is arithmetic only. Where legal, payroll, holiday, timezone or jurisdiction-specific rules matter, the page states what is and is not included.

Frequently asked questions

Is this validated for clinical trial, regulatory or CDISC compliance?

No. This is a general-purpose planning arithmetic aid, not a validated clinical system, a source document, a protocol deviation checker, or a claim of HIPAA, CDISC or other regulatory compliance. It performs the date math you configure and nothing more — your protocol and approved study documents always take precedence, and every result should be verified against them.

Should I use Day 0 or Day 1?

Whichever your own protocol defines. Both conventions are genuinely used across different studies and institutions — this page doesn't assume one is correct. For a day-based visit, enter the study day exactly as your protocol states it (for example, "Day 14"); the calculated date and the displayed day label always match what you entered, under either convention. Switching conventions recalculates the date — it doesn't just relabel it, so double-check your visits after changing this setting. Day 0 is rejected outright under the Day 1 convention, since there is no Day 0 to enter in that case.

Does this know my country's public holidays?

No. There is no automatic country or regional holiday database. Add the specific bank or site holiday dates that matter for your calculation, and they'll be excluded from working-day tolerance and the working-day adjustment.

Is any participant information stored or transmitted?

No. This page has no fields for participant name, initials, ID, MRN, date of birth, or any uploaded document — don't enter identifying information anywhere, including in visit labels. Whatever you type exists only in your browser for this visit; closing or reloading the page clears it.

What's the difference between this and the Workday Calculator?

The Workday Calculator computes one resulting date from one offset. This page generates a full multi-visit schedule from a single anchor — each visit with its own offset, asymmetric early/late tolerance, and optional working-day rules — the workflow a protocol's schedule of events actually needs.

Can I export the schedule?

Yes. "Copy table" copies a tab-separated version of the results to your clipboard for pasting into a spreadsheet; "Download CSV" saves a CSV file, generated entirely in your browser. Both are disabled until every visit row has valid values.