TODAY returns the current date and updates every time the sheet recalculates. It is the anchor for anything that depends on "now": days until a deadline, overdue flags, ages, rolling reports and countdowns.
Syntax
=TODAY()
TODAY takes no arguments, but the parentheses are required. The result is a date with no time component. To include the time as well, use NOW().
How it works
Dates in Google Sheets are numbers: the count of days since December 30, 1899. TODAY() returns today's number, formatted as a date. That is why you can add and subtract dates directly:
=TODAY() + 7is a week from today.=TODAY() - 30is 30 days ago.=A2 - TODAY()is the number of days until the date inA2(negative if it has passed).
If the result shows as a number such as 46096, format the cell as a date (Format > Number > Date).
Basic examples
=TODAY()
Today's date.
=A2 - TODAY()
Days remaining until the deadline in A2.
=IF(A2 < TODAY(), "Overdue", "On time")
Flags overdue items.
=TODAY() + 30
A due date 30 days from now.
Practical patterns
Age from a birth date
=DATEDIF(A2, TODAY(), "Y")
Whole years between the birth date and today. See DATEDIF.
First and last day of the current month
=EOMONTH(TODAY(), -1) + 1
=EOMONTH(TODAY(), 0)
Days elapsed this year
=TODAY() - DATE(YEAR(TODAY()), 1, 1) + 1
Days left in the year
=DATE(YEAR(TODAY()), 12, 31) - TODAY()
Business days until a deadline
=NETWORKDAYS(TODAY(), A2)
See NETWORKDAYS.
Rolling windows in reports
=SUMIFS(C2:C1000, A2:A1000, ">=" & (TODAY() - 30), A2:A1000, "<=" & TODAY())
Sums the last 30 days.
Highlight rows with conditional formatting
Use a custom formula rule such as =$A2 < TODAY() to color overdue rows red, or =AND($A2 >= TODAY(), $A2 <= TODAY() + 7) for items due in the next week.
Day name or month name
=TEXT(TODAY(), "dddd")
=TEXT(TODAY(), "mmmm yyyy")
Video Example
TODAY is volatile (and what that means)
TODAY is a volatile function: it recalculates whenever the spreadsheet recalculates, so it always shows the current date. Two consequences:
- Results change over time. An overdue flag that says "On time" today will say "Overdue" tomorrow. That is the point, but it means old reports change if you reopen them. To freeze a report, copy the cells and paste them as values only.
- You cannot use
TODAYas a timestamp. If you need to record when something happened,TODAY()will keep changing. Instead, enter the date with the keyboard shortcutCtrl+;(orCmd+;on a Mac), which inserts a fixed value, or use Apps Script to stamp a cell.
In File > Settings > Calculation, you can set recalculation to "On change" or "On change and every minute/hour". Because TODAY only needs to change once a day, any of these options works.
Time zone
TODAY uses the spreadsheet's time zone, set under File > Settings > General. If a team in another time zone sees the wrong date around midnight, check that setting.
Common problems
- A number instead of a date. Format the cell as a date.
- A date that never changes. The cell contains a typed date, not the formula. Check that it starts with
=. - A date off by one. The spreadsheet time zone differs from yours.
- Time shows as
00:00:00.TODAYhas no time component. UseNOW()for date and time. - Comparing text dates.
=A2 < TODAY()only works whenA2is a real date. A left-aligned date is probably text; convert it withDATEVALUE. - Slow sheets. Thousands of volatile formulas recalculate constantly. Put
TODAY()in one cell, and refer to that cell elsewhere.
TODAY vs. NOW
TODAY()returns the date only (midnight).NOW()returns the date and the current time.- For "is it before today?" comparisons,
TODAY()is cleaner, becauseNOW()includes a fractional time that can make same-day comparisons behave unexpectedly.
Frequently asked questions
Does TODAY update automatically? Yes, whenever the spreadsheet recalculates, which happens when you open it or edit it.
How do I make a date that does not change? Type it, or press Ctrl+; (Cmd+; on Mac), or paste TODAY() as values only.
Can I get tomorrow's or yesterday's date? =TODAY() + 1 and =TODAY() - 1.
How do I calculate working days only? Use NETWORKDAYS or WORKDAY.
Related Functions
NOW: Returns the current date and time.DATEDIF: Calculates the difference between two dates in years, months or days.EOMONTH: Returns the last day of a month.NETWORKDAYS: Counts working days between two dates.TEXT: Formats a date as text.