What is conditional logic?
Conditional logic lets you show, hide, require, or block questions on your booking form depending on how a previous question is answered. The form adapts in real time as your attendee fills it in.
Without conditional logic, every attendee sees every question regardless of relevance. With it, you can build a smart, focused form that asks different things to different people based on their own answers.
Why use conditional logic
Most scheduling tools force every attendee to see every question. TimelyDo's conditional logic changes that. Here is why it matters:
Enabling conditional logic
Conditional logic is disabled by default to keep the event editor clean for hosts who do not need it. Enable it once you are ready to add logic to an event.
UI indicators
Once conditional logic is enabled, several visual signals appear across the question list to help you see the state of your logic at a glance, without opening every card.
Step-by-step setup
Once the Logic toggle is on, here is how to add a condition to any question:
Which question types can trigger conditions
Any question that appears above the current question in the form can be a trigger source, as long as its type supports operators. Here are all supported trigger types and what they can do:
| Question type | Operators available | Value input |
|---|---|---|
| Dropdown | equals, does not equal, is answered, is blank | Picks from the dropdown's options |
| Radio | equals, does not equal, is answered, is blank | Picks from the radio's options |
| Checkbox | contains, does not contain, is answered, is blank | Picks from the checkbox's options |
| Yes / No | equals (Yes or No), is answered, is blank | Yes or No dropdown |
| One Line Text | equals, does not equal, contains, does not contain, is answered, is blank | Free text input |
| Multi Line Text | equals, does not equal, contains, does not contain, is answered, is blank | Free text input |
| Number | equals, does not equal, greater than, less than, greater than or equal to, less than or equal to, is answered, is blank | Numeric input |
| Rating | equals, greater than, less than, is answered, is blank | Numeric input |
| Date | is before, is after, is answered, is blank | Date picker, time picker, or datetime picker depending on the date format configured on the source question |
| is answered, is blank | No value needed | |
| Phone | is answered, is blank | No value needed |
| URL | is answered, is blank | No value needed |
| File Upload | is answered, is blank | No value needed |
Operators explained
An operator defines how the attendee's answer is compared to the value you configure. The operator list is automatically filtered to only show operators that make sense for the source question type.
| Operator | What it checks | Example |
|---|---|---|
equals | Answer exactly matches the configured value | Service type equals "Legal" |
does not equal | Answer is anything except the configured value | Meeting format does not equal "Remote" |
contains | One of the checked values includes the target (Checkbox) or the text includes the substring (text types) | Topics contains "Pricing" |
does not contain | Inverse of contains | Interests does not contain "Enterprise" |
greater than | Numeric answer is above the value | Team size greater than 50 |
less than | Numeric answer is below the value | Budget less than 1000 |
greater than or equal to | Numeric answer is at or above the value | Age greater than or equal to 18 |
less than or equal to | Numeric answer is at or below the value | Guests less than or equal to 10 |
is before | Date answer is earlier than the configured value. For date range questions, compares the start date. For time questions, compares the selected time. | Project start is before 2026-01-01 |
is after | Date answer is later than the configured value. For date range questions, compares the end date. For time questions, compares the selected time. | Deadline is after 2026-06-30 |
is answered | The attendee filled in anything at all | Phone number is answered |
is blank | The attendee left the field empty | Company name is blank |
AND / OR matching across multiple conditions
A single question can have multiple condition rules. When you add more than one rule, a match selector appears letting you choose how the rules are evaluated together.
OR
Service equals "Compliance"
↓ Show: NDA upload field
AND
Plan equals "Enterprise"
↓ Show: Priority support question
The 5 actions
Show
The question is hidden by default and appears only when the condition is met. When the attendee changes their earlier answer so the condition is no longer met, the question hides again immediately and any answer they gave is cleared.
- Follow-up questions that only apply to certain answers
- Service-specific intake fields
- "Which office?" only if they chose "In-person"
- "Which social platform?" only if they chose "Social media"
- Hidden from view until condition is met
- Appears with a smooth animation
- Disappears again if the trigger answer changes
- Cleared answer when hidden, never submitted empty
↓ Show: #2 Which platform?
Hide
The question is visible by default and disappears when the condition is met. Think of it as the inverse of Show: the question is there for everyone except those who trigger the condition.
- Hiding fields that become redundant given a previous answer
- "Company name" can be hidden if "I'm an individual" is selected
- Removing advanced questions for beginner-level clients
- Visible to everyone by default
- Disappears when the condition is met
- Answer is cleared when hidden
↓ Hide: #2 Company name
Require
The question is always visible but only becomes mandatory when the condition is met. Attendees who do not trigger the condition can leave it blank. Those who do trigger it must answer before they can submit.
- A company name that is optional for individuals but required for business bookings
- A licence number required only if the client is a professional
- A project brief required only for longer session types
- Always visible, optional by default
- A red asterisk (*) appears when condition is met
- Form will not submit without an answer when required
↓ Require: #2 Company registration number
Block booking
When the condition is met, the form's submit button is disabled and a red message banner appears explaining why the booking cannot proceed. You can configure the message text. If the attendee changes their earlier answer so the condition is no longer met, the block is lifted immediately.
- Age-gating (must be 18+ to book)
- Membership checks ("Existing clients only")
- Geography restrictions
- Budget qualification (minimum spend required)
- B2B lead qualification (company size below threshold)
You can write a custom message that appears on the booking page when the block is triggered. Leave it blank to show a default message.
Example: "This session is for existing clients only. Please contact us directly to become a client."
↓ Block booking → "This session is for existing clients only."
Redirect
When the condition is met, the attendee is shown a brief message and then automatically navigated to a URL you configure after 1.5 seconds. Use this to route people to a different booking page, a self-serve resource, or an external intake form.
- Routing enterprise clients to a dedicated booking page
- Sending SMB clients to a self-serve signup
- Directing international clients to a region-specific page
- Routing to a partner's booking link based on service type
Enter the full URL including https://. The attendee sees a brief message ("Based on your answers, we're taking you to the right page") and is redirected after 1.5 seconds.
Works inside embedded booking forms too. The redirect escapes the embed iframe automatically.
↓ Redirect → https://yoursite.com/enterprise-booking
Real-world examples
- #1 What stage is your business? (Dropdown: Idea stage / Early revenue / Growth / Established)
- #2 What is your monthly revenue? (Number)
- #3 Which areas do you want coaching on? (Checkbox)
- #2 is shown only when #1 equals "Growth" or "Established" (ANY match)
- Block booking when #1 equals "Idea stage" → "Our coaching programme is for businesses already generating revenue. Join our waitlist instead."
- #1 What type of legal matter? (Dropdown: Family / Corporate / Criminal / Employment)
- #2 Are children involved? (Yes/No, shown only when #1 = Family)
- #3 Is the company registered in the UK? (Yes/No, shown only when #1 = Corporate)
- #4 Please upload any relevant documents (File upload, always shown)
- #2 shown only when #1 equals "Family"
- #3 shown only when #1 equals "Corporate"
- #1 Company size (Number)
- #2 Current tooling (Dropdown: Spreadsheets / Basic CRM / Enterprise CRM / Custom)
- #3 Would you like a custom demo? (Yes/No, always shown)
- #4 Assign to enterprise team (Hidden, shown only to enterprise leads)
- #4 is required when #1 greater than or equal to 500 AND #2 equals "Enterprise CRM" (ALL match)
Viewing your logic in the Logic tab
The event editor has two tabs in the Form Questions section: Questions and Logic (visible only when conditional logic is enabled). The Logic tab renders your entire form as a flow diagram.
- Every question as a labelled node with its type and position number
- Single-condition questions: one solid arrow from the source to the target, labelled with the action and condition
- Multi-condition questions: each source connects with a dashed arrow to a central diamond gate node labelled ANY (OR) or ALL (AND), then one solid arrow from the gate to the target
- Colour-coded by action (blue = Show, grey = Hide, green = Require, red = Block, orange = Redirect), applied to both the arrows and the gate node
- A colour legend in the toolbar at the top of the diagram
- Scroll to zoom (mouse wheel or trackpad)
- Pinch to zoom (two fingers on trackpad)
- Drag to pan around the canvas
- +/− buttons and a percentage counter for precise zoom
- Full-screen button opens the diagram to fill the entire browser window
- Press Esc to exit full screen
- PNG image exports a high resolution raster image (at least 2000px on the long side) with a white background. The file is named
{event-name}-conditional-logic.png. Use this for sharing in documents, slide decks, or emails. - SVG vector exports the diagram as a scalable vector file named
{event-name}-conditional-logic.svg. Use this for editing in Figma, Illustrator, or embedding in web pages at any size without quality loss.
Tips and things to know
Was this article helpful?
Let us know so we can keep improving our documentation.