Table of Contents

Ask for a date block

Desirée M Updated by Desirée M

The Ask for a date block asks visitors for a date, lets them pick it from a calendar and saves it in a Field in the format you choose. Use it to book appointments, pick delivery dates, collect birthdays or schedule events.

You also decide which dates visitors can pick: any date, only past or future ones, your own date ranges, and which days of the week are closed.

How to add an Ask for a date block

Add an Ask for a date block from the output of the block that comes before it:

1️⃣ Drag from the block's output (the green arrow) to an empty spot on the canvas, or click the output.

2️⃣ Type Ask for a date in Search by name.

3️⃣ Select Ask for a date.

A new Ask for a date block asks "Select a date, please", shows the date picker, accepts any date and saves it as YYYY/MM/DD. It saves nothing until you pick a Field: the panel reminds you that "If a field is not set, the answer won't be saved".

How the Ask for a date block works in a booking

In this example, a dog grooming agent, Happy Paws, asks when the visitor would like to bring their dog Biscuit in. The salon is open Tuesday to Saturday, so the Ask for a date block takes Future dates only, leaves Include current date off, closes Sundays and Mondays, and saves the answer in @appointment_date as DD/MM/YYYY:

Ask for a date panel taking future dates except Sundays and Mondays and saving them in the appointment_date Field

● A Tuesday to Saturday from tomorrow on, 22/10/2026: the date is sent, and the next message replies "Booked! 🛁 See you and Biscuit on 22/10/2026".

● Today, an earlier day, a Sunday or a Monday: greyed out in the calendar. Typed by hand, it can't be sent.

Date picker showing only Tuesdays to Saturdays from 20 October 2026 as available

The Happy Paws question names the opening days itself ("We're open Tuesday to Saturday"), so visitors know why some days are greyed out before they open the calendar.

How to choose the date format

Pick the format in Format to save the date. The date is saved in the Field in this format, and visitors who type the date type it in the same one. Each option shows today's date in its format, so you can check it before you pick:

● YYYY/MM/DD (the default)

● YY/MM/DD

● DD/MM/YYYY

● DD/MM/YY

● MM/DD/YY

● MM/DD/YYYY

The date box shows the format as its placeholder, for example dd/MM/yyyy, and a day picked in the calendar fills the box in that format.

How to compare dates in a Conditions block

To compare dates in a Conditions block, save them as YYYY/MM/DD and compare two Date Fields, not a Field with a date typed into the condition. Save the second date with a Set a field block right before the Conditions block.

In this example, the Happy Paws agent gives a free festive bandana with every December bath, so its appointment question saves dates as YYYY/MM/DD. A Set a field block saves 2026/11/30 in @festive_start, and the Conditions block checks whether @appointment_date is GREATER THAN @festive_start:

Set a field panel saving 2026/11/30 in the festive_start Field, next to the Conditions block that uses it

● Green output (true), 2026/12/15: "A December bath! Biscuit gets a free festive bandana 🎄"

● Red output (false), 2026/11/14: the conversation goes straight on to "Anything else?".

Conditions panel checking if appointment_date is greater than festive_start, with the green output to the bandana message
A Conditions block that compares a date Field with a date typed into the condition, or dates saved in another format such as DD/MM/YYYY, stops the conversation: the visitor gets no next message.

Learn more in Conditions block II (with Dates, Usage and Agents variables).

How to count the days between two dates

To count the days between two dates, save both as YYYY/MM/DD and subtract them in a Code block placed after the second date question.

In this example, the Happy Paws agent also runs a dog hotel. It saves the check-in in @check_in and the check-out in @check_out, and its Code block saves the number of nights in @nights with one line:

this.setCustomData({nights: Math.round((new Date("@{check_out}") - new Date("@{check_in}")) / 86400000)});

● Check-in and check-out, 2026/10/23 and 2026/11/02: "That's 10 nights at the Happy Paws hotel 🏨"

Builder flow with two Ask for a date blocks, a Code block, a Yes button question and a message showing the nights Field
@nights is available only after the visitor's next answer, so ask something before you use it, such as "From @check_in to @check_out, is that right?" with a Yes button.

How to show or hide the date picker

Show date picker is on by default: visitors click the date box, a calendar opens, and the day they click fills the box. Turn it off when you'd rather have visitors type the date.

The available dates still apply when the date picker is off: a date outside them can't be sent. What visitors lose is the calendar that shows them which days are open. So when the date picker is off, say the rules and the format in the question, for example "Type a Tuesday to Saturday from tomorrow on, as dd/mm/yyyy".

How to limit which dates visitors can pick

Choose which dates visitors can pick in Set available dates:

● All (the default): any past or future date.

● Past dates only: days before today. Tick Include current date to add today.

● Future dates only: days after today. Tick Include current date to add today.

● Custom range: only the date ranges you set.

Dates that aren't available are greyed out in the calendar, and they can't be sent when typed.

In this example, the Happy Paws agent also asks for Biscuit's birthday, so it can send a treat that week. That Ask for a date block takes Past dates only with Include current date ticked:

● Today or an earlier day, 19/10/2026 (today): sent and saved in @dog_birthday.

● A future day, 25/12/2026: greyed out in the calendar, and it can't be sent.

The calendar always shows today in a paler grey. With Include current date ticked, visitors can still pick today or type it.
How to set custom date ranges

To set custom date ranges, choose Custom range in Set available dates, then pick a From and a To date. Click + to add another range and the bin icon to remove one. Leave To as No end date for a range that never ends.

Custom range settings with 3 to 28 November 2026 and an open range from 15 December 2026

In this example, the Happy Paws agent takes bookings for its November spa weeks and again from mid-December on:

● First range: From 03/11/2026 To 28/11/2026.

● Second range: From 15/12/2026 with No end date, so every later date stays open.

The calendar opens on the first month with an available day. The closed Sundays and Mondays stay greyed out inside the ranges.

Date picker with Tuesdays to Saturdays from 3 to 28 November 2026 available
How to close days of the week

To close days of the week, click them in Disable specific days: dark circles are days visitors can pick, and light ones are closed. Closed days work with every Set available dates option, like the Happy Paws Sundays and Mondays inside Future dates only and inside its custom ranges.

What happens when a visitor enters a date that isn't allowed

On Web, a date that isn't allowed can't be sent: the send arrow stays grey and Enter does nothing, so the visitor changes the date and tries again. That covers unavailable dates, closed days and dates in another format, such as 2026/10/22 when the format is DD/MM/YYYY. No message appears in the chat.

Where the date is saved

The date is saved in the Field you pick in Save user answer in the field: click the box, type a name and click Create new field, or pick an existing Date Field. Use the Field anywhere later in the flow, like @appointment_date in the Happy Paws "Booked!" message.

To change a date, such as adding days to it, use Formulas - Date.

For WhatsApp

On WhatsApp, visitors type the date: the Ask for a date block shows no calendar. The block checks the answer against Format to save the date and, when the answer doesn't match, sends an error message and asks again. The conversation goes on only once the visitor sends a valid date.

Set available dates doesn't apply on WhatsApp: the block checks the format only. Say the format in the question, and the dates you take if they matter, for example "Which day would you like to come in? Please type it as DD/MM/YYYY."

To see which other blocks work on WhatsApp, read the WhatsApp bots - Feature Compatibility Guide.

For Facebook Messenger

On Facebook Messenger, visitors type the date: the Ask for a date block shows no calendar. The block checks the answer against Format to save the date and, when the answer doesn't match, sends an error message and asks again until the date is valid.

In this example, a Facebook Messenger agent asks for a date "in the format DD/MM/YYYY":

● Wrong format, 2020/02/13: "Please try again! Tell me a date in the format DD/MM/YYYY."

● Right format, 13/02/2020: the date is accepted, and the conversation goes on.

Facebook Messenger chat where the date 2020/02/13 gets an error asking for DD/MM/YYYY and 13/02/2020 is accepted

Because visitors can't go on until they send a valid date, say the format in the question every time.

Was this article helpful?

Ask for a Phone block

Forms block

Contact