DATE
DATE(year, month, day, [hour], [minute])
Makes a date from a year, a month and a day, such as a contract milestone to compare finishes against. It's the only way to write a fixed date: Owl has no date literals, so "2026-12-01" stays text. The date is the start of that day, or a time of it when you give an hour and a minute.
Arguments
| Argument | What to give it |
|---|---|
| year | The year as a number, like 2026. |
| month | The month, 1 to 12. As in Excel, 13 is January of the next year and 0 is December of the year before. |
| day | The day of the month. A day past the month's end runs into the next month, and 0 is the last day of the month before. |
| hour | Optional: hours past midnight, 0 to 23, in UTC wall clock. 24 is the next day's midnight. |
| minute | Optional: minutes past the hour. |
Any blank argument gives blank. Fractions are cut down to whole numbers.
Examples
Formula=[Finish date] > DATE(2026, 12, 1)
TRUE for tasks that finish after 1 December 2026.
Formula=WORKDAYS([Finish date], DATE(2027, 3, 31))
The working time between the task's finish and a contract date of 31 March 2027: negative when it finishes after it.
Formula=DATE(YEAR([Finish date]), MONTH([Finish date]), 1)
The first day of the month the task finishes in.
Measure (on the project)=CALDAYS([Finish date], DATE(2027, 6, 30))
As a measure: calendar days to spare between the project's finish and a completion date of 30 June 2027.
Formula=WORKDAYS(DATE(2026, 1, 5, 12), [Start date]) > 0h
TRUE for tasks that start after noon on 5 January 2026, by any working time. Dates compare by the day, so the hour is compared through the working time between them.
Reach for something else when
| You want | Use |
|---|---|
| The hour or minute of a date | HOUR, MINUTE |
| A date that can change without editing formulas | an input of type date: INPUT |
| The last day of a month | EOMONTH |
| A date some working time later | ADDWORK |
Common questions
Why can't I compare a date with "2026-12-01"?
Owl has no date literals, because written dates depend on where you are. The editor refuses it with Can't compare Date with Text; write DATE(2026, 12, 1) instead.
=[Finish date] > "2026-12-01"
Why does DATE(…) + 1 not give the next day?
A number added to a date is working time of the task's calendar, not a calendar day. DATE is the start of the day, before any work, so one working day from it ends on that same day when it's a working day. For the next calendar day, add to the day instead: DATE(YEAR([Finish date]), MONTH([Finish date]), DAY([Finish date]) + 1), which runs into the next month when it has to. See dates.
Is the date in my time zone?
Owl keeps schedules in UTC wall clock, and DATE is the start of the day there, the same day every date in the schedule is read in. Dates compare by the day, so [Finish date] = DATE(2026, 12, 1) is TRUE whatever time the task finishes that day.
