# Date conditions

You'll find how to match today's date, weekday, or month, including which timezone applies and when a date range starts and ends.

Available on the Grow, Scale, and Pro plans.

You can limit an offer to a date range, selected weekdays, or certain months. **Date** conditions help you choose when it applies, with rules based on the current time.

## What it checks

The **Date** source compares the current time with your rule. It doesn't read an answer to a date question, a contact's birthday, or the visitor's first visit.

## When to use it

Use **Date** for a specific date or range, **Week Day** for selected days of the week, and **Month** for a seasonal rule that can apply again next year.

For dates visitors submitted, including relative day windows, see [input-question answer conditions](https://rightmessage.com/help/conditions-answers). For time since the first visit or recent browsing, see [Pages and visits conditions](https://rightmessage.com/help/conditions-pageviews).

## Options

### Date

The **Date** trigger starts with **Between** and two blank date fields.

| Operator    | Fields                  | What matches                                                            |
| ----------- | ----------------------- | ----------------------------------------------------------------------- |
| **Between** | Start date and end date | The current instant is at or after the start and at or before the end.  |
| **Equals**  | One date                | The configured date falls within today in the visitor's local calendar. |
| **Before**  | One date                | The current instant is before the configured date.                      |
| **After**   | One date                | The current instant is after the configured date.                       |

**Before** and **After** are strict comparisons at whole-second precision. **Between** includes its exact boundaries at that precision.

A missing start date or an unparseable date doesn't match. With a blank end date, RightMessage substitutes the current time, so a range with a past start can still match. Supply both boundaries.

### Week Day

**Week Day** offers **Monday**, **Tuesday**, **Wednesday**, **Thursday**, **Friday**, **Saturday**, and **Sunday**. It starts with **include any of** and an empty selection.

| Operator                 | What matches                                   |
| ------------------------ | ---------------------------------------------- |
| **include any of**       | Today is one of your selected weekdays.        |
| **don't include any of** | Today isn't one of your selected weekdays.     |
| **matches any**          | Your configured weekday selection is nonempty. |
| **doesn't match any**    | Your configured weekday selection is empty.    |

The last two operators inspect your selection, not whether today's weekday is known. The first two filter by today's weekday.

### Month

**Month** offers every month from **January** through **December**. It starts with **include any of** and an empty selection.

Its four operators are **include any of**, **don't include any of**, **matches any**, and **doesn't match any**. Inclusion compares the current month with your selected months. As with **Week Day**, the two presence operators inspect your configured selection, not the browser's ability to determine the month.

A month selection has no year attached, so it can match again in later years.

## Examples

[WorkForge](https://workforge.rightmessage.com) could show a seasonal offer with **Month**, **include any of**, and **January** and **February** selected.

The date-range rule below has January 1 and January 31, 2027 as its boundaries.

![Date condition between January 1 and January 31, 2027](https://rightmessage.com/help/screens/segmentation-date-range.light.webp)

A range compares the saved date instants. It doesn't extend the end date to 11:59:59 p.m. automatically. A date-only end boundary can therefore end at the start of that date.

## Things to know

Weekday and month come from the visitor's browser clock and timezone. **Equals** also uses the visitor's local day. **Before**, **After**, and **Between** compare the saved date instants with the current time. This editor has no project-timezone selector.

These conditions compare the current time, not stored visitor history. Whether someone matches can change when RightMessage evaluates the rule later. The condition doesn't guarantee a refresh at exactly midnight on a page left open.

The current picker has no **Time** trigger or separate hour-of-day rule.
