DocumentationStudioDate Picker

Date Picker

The Date Picker lets a person type a date or pick it from a calendar. In SmartForms Studio you decide which dates are allowed, how the date is written and what it starts with. This page goes through the settings in the order they appear in Properties. For the other form elements, see Items. For what the person sees while filling in the form, see Filling in a Smartform.

The Properties panel has these groups:

GroupWhat it sets
InformationName, label, placeholder, helper text, required and read only
Valid datesWhich days can be chosen
Type & precisionDay, month, year or week, and date ranges
Display & inputHow the date is written and how it is entered
Default & validationThe starting value and the error message
IntegrationA workflow that runs when the date changes

The colour, border and size settings are the same as for the other elements. They are described in Items.


Information

SettingWhat it does
PropertyThe field name that identifies the field. Use it in rules, expressions and {{ property }} text
LabelThe text above or in front of the field
PlaceholderThe hint shown while the field is empty. See below
Helper textThe help text shown on mouseover
RequiredAn error shows if the field is empty
Read onlyThe person cannot change the date

Placeholder

The placeholder is a small template. If you leave it empty, the field shows the date format, for example dd.MM.yyyy. You can also write your own text and add tokens. Studio fills each token in the field’s own date format.

TokenBecomes
{{ format }}The date format, for example dd.MM.yyyy
{{ min }}The earliest allowed date
{{ max }}The latest allowed date
{{ today }}Today’s date
{{ today+3days }}The date three days from today
{{ otherField+1year }}One year after the date in another Date Picker. Use that field’s Property name
[[ deliveryDate+30days ]]30 days after a form field, a data-table value or a Doxis variable
[[ start-date | add=-2weeks ]]The same with a pipe, for names with hyphens. See Date expressions
{{ min + 1day }}The day after the earliest allowed date

A token updates as soon as the date it points to changes. A token that can’t be filled in yet is left out, and if nothing else is left the field shows the date format.

Studio shows the tokens as chips under the field. Click a chip to add it. A Shows as line previews the result, for example Between 05.11.2026 and 31.12.2026.


Valid dates

A day can be chosen only if it passes all of these checks, in this order:

  1. 1Min dateNot before the earliest date
  2. 2Max dateNot after the latest date
  3. 3WeekdaysOn an allowed weekday
  4. 4Allowed datesIn the allowed list or pattern
  5. 5Blocked datesNot blocked
  6. 6HolidaysNot a public holiday

The form and the server use the same checks. If a day is refused, the person sees the error message and the date is not saved.

Min date and Max date

Each limit is a fixed date or a date expression, for example:

  • today+3days
  • today+5workdays, which counts working days and skips weekends
  • {{ startDate }}+1year, one year after another Date Picker
  • {{ min + 60days }} in Max date, which means 60 days after this field’s own Min date

While the date a limit points to is still empty, that limit does not apply.

Date expressions

Min date, Max date, the default value and placeholder tokens all use the same expressions.

What an expression starts from

StartExample
A fixed date2026-11-01
Todaytoday or {{ today }}
Another field, data-table value or Doxis variable{{ startDate }}, {{ datepicker-1 }}, {{ doc.ObjectDate }}
This field’s other limit{{ min }} in Max date, {{ max }} in Min date

Units: days, workdays, weeks, months and years, singular or plural, with + or -. Workdays skip Saturdays and Sundays, and also public holidays when Exclude public holidays is on. A month or a year added to the 29th, 30th or 31st lands on the last day of a shorter month: 31.01 + 1 month is 28.02.

Three ways to write an offset

FormExampleNotes
After the braces{{ startDate }}+1year
Inside the braces{{ startDate + 1year }}Spaces are optional
With a pipe{{ start-date | add=-1month }}The safest form for names with hyphens or digits

Names with hyphens. Property names, data-table values and Doxis variables often contain hyphens, such as datepicker-1 or start-date. A hyphen inside a name stays part of the name. Only a hyphen followed by a number and a unit at the end counts as minus. So {{ datepicker-1-1month }} means datepicker-1 minus one month. If a value really has a name that looks like an offset, such as notice-3days, it is used as it is.

Pipes. As in [[ INPUT : name | key=value ]], everything before the first | is the name, and each | add= after it is one step. Steps run from left to right. A sign is optional (add=3days adds) and spaces are allowed:

ExpressionWith start-date = 31.08.2026
{{ start-date | add=-2weeks }}17.08.2026
{{ start-date | add=+6months | add=-1day }}27.02.2027
{{ start-date | add=+1month }}+1day01.10.2026 (an offset after the braces runs last)

In the pipe form the name is taken as written. {{ start-date-1month | add=1day }} looks for a field named start-date-1month, so don’t put an offset both in the name and in a pipe.

Minus signs. -, − and – all mean minus. Word and Outlook often turn - into – when you paste.

When an expression can’t be read. If an expression points to an empty or unknown name, or a pipe step is not add= followed by a number and a unit (for example add=1fortnight or sub=1day), the limit does not apply and a placeholder token is left out. One unreadable step makes the whole expression unreadable, so it is never partly applied.

Allowed weekdays

Tick the days of the week that can be chosen, Mon to Sun. Weekdays ticks Monday to Friday. All ticks every day.

Allowed dates

Choose how the allowed dates are described:

ChoiceWhat it allows
AnyEvery date that passes the other checks
DatesOnly the dates in your list
DayOnly certain days of the month, from 1 to 31 or Last. 31 means the last day of the month in months that are shorter
YearOnly certain years

For Dates, Day and Year you can type a fixed list, or take the values from a data table. Use the data table when the list changes often or is long.

Exclude public holidays

Tick Exclude public holidays and choose a country. Public holidays in that country cannot be chosen. These countries are supported: Norway (NO), Sweden (SE), Denmark (DK), Finland (FI), Germany (DE), United Kingdom (GB), Netherlands (NL), Poland (PL), Austria (AT), Switzerland (CH), France (FR) and Iceland (IS).

When you tick the box, Studio picks your own country from your browser language, as long as it is in the list. Change it if the form is for another country.

Blocked dates

Add single dates or date ranges that cannot be chosen, for example a company holiday. Click Add date or range. For a range, fill in both the start and the end. The end cannot be before the start.


Type & precision

SettingWhat it does
PrecisionDay, Month, Year or Week. The person picks a whole month, year or week instead of a day
Date range (from – to)The person picks a start and an end date in one field

Display & input

SettingWhat it does
Display formatYYYY-MM-DD, DD-MM-YYYY, MM-DD-YYYY or DD.MM.YYYY
First day of weekFollow format, Monday, Saturday or Sunday
Show week numbersShows the week number in the calendar
Calendar opens onThe month the calendar starts on: the Selected date, the Current month or the Min date
Input methodType + pick lets the person type or use the calendar. Picker allows the calendar only. Type has no calendar button

The display format changes only what people see. The date is always stored in the standard form, whatever the format:

PrecisionStored as
Day2026-11-03
Month2026-11
Year2026
Week2026-W45
Date rangea start and an end date

Text in the form that uses {{ property }}, and the PDF, show the date in the format you chose for the Date Picker. With a right-to-left language, the date is still written left to right.


Default & validation

Default value

Choose a Data source:

Data sourceWhat it does
StaticNo starting date
VariableTakes the date from a variable, for example [[ doc.ObjectDate ]]. Enter the variable name
Date or expressionA fixed date or a date expression such as today+3days, {{ startDate }}+1year or {{ start-date | add=+1month }}. If it lands on a day that is not allowed, the next allowed day is used

Error message

Write your own Error message for a date that is not allowed. It can use {{ min }} and {{ max }}, for example Choose a date between {{ min }} and {{ max }}.


Integration

Workflow - On Value Change runs a workflow when the person picks or types a date. A default value that is filled in when the form opens does not start the workflow.


Tips

  • Typing 03112026 fills in 03.11.2026 when the format is DD.MM.YYYY.
  • today+5workdays skips Saturdays and Sundays, so it works well for a delivery or answer deadline.
  • Use Day with Last to allow only the last day of the month, for example for an invoice date.
  • Write a placeholder such as Between {{ min }} and {{ max }} so people see the limits before they choose.
  • To let someone choose an end date after a start date, set Min date of the end field to {{ startDate }}.
  • For a field name with hyphens, use a pipe: {{ contract-start | add=+6months | add=-1day }}.
  • Test the form with an allowed and a refused date. See Test your Smartform.