The two functions that do most of the work
parseDate(text; format; [timezone]) reads text into a date value using a format string. formatDate(date; format; [timezone]) turns a date into text. [1] The optional timezone takes a TZ database name such as Europe/Prague or UTC; if you leave it out, the function uses your organization's time zone. [1] Make's own examples show parseDate reading 2016-12-28 16:03 with the format YYYY-MM-DD HH:mm, and reading the Unix timestamp 1482940986 with the format X. [1]
Treat the pair as a boundary: parse every incoming text date as soon as it enters the scenario, do arithmetic and comparisons on date values, and format only at the end, for the email, sheet or API that needs text.
Token cheat sheet
Make's formatting and parsing tokens share most letters. The most common mistakes are mixing MM (month) with mm (minutes) and HH (24-hour) with hh (12-hour). For parsing, Make lists h and hh as 12-hour time used with a or A. [6]
- Make's parsing token list groups M with MM for months 1 to 12 and D with DD for days 1 to 31, so M/D/YYYY is the pattern to try for unpadded CSV dates; confirm it with Run this module only. [6]
| Token | Means | Example output |
|---|---|---|
| YYYY / YY | Four-digit / two-digit year | 2026 / 26 [2] |
| M / MM | Month number / zero-padded | 3 / 03 [2] |
| MMM / MMMM | Short / full month name | Mar / March [2] |
| D / DD / Do | Day of month / zero-padded / ordinal | 7 / 07 / 7th [2] |
| ddd / dddd | Short / full weekday | Sat / Saturday [2] |
| H / HH | Hour, 24-hour clock / zero-padded | 15 / 15 [2] |
| h / hh with A | Hour, 12-hour clock with AM or PM | 3 PM / 03 PM [2] |
| mm / ss | Minutes / seconds, zero-padded | 05 / 09 [2] |
| Z / ZZ | UTC offset with / without colon | -05:00 / -0500 [2] |
| X / x | Unix timestamp in seconds / milliseconds | 1360013296 / 1360013296123 [2] |
| W / E | ISO week of year / ISO day of week | 10 / 6 [2] |
Arithmetic and setters
Make documents addSeconds, addMinutes, addHours, addDays, addMonths and addYears; each adds the given number, and a negative number subtracts. [1] The setters move one part of a date: setSecond and setMinute accept 0 to 59, setDay takes 1 to 7 with Sunday as 1 or an English day name, setDate takes 1 to 31, setMonth takes 1 to 12 or a month name, and setYear sets the year. Values outside a setter's range roll over into the next unit; setDate with 32 on a date in August 2015 returns September 1. [1]
- Make's documentation pages show a few examples whose outputs do not match the inputs, so test any expression with Run this module only before relying on it.
| Goal | Expression pattern | Why |
|---|---|---|
| Exactly 24 hours earlier | addHours(start; -24) | Counts hours, not calendar days |
| Same time next week | addDays(date; 7) | Negative numbers subtract [1] |
| First day of this month | setDate(date; 1) | Day of month set directly [1] |
| Last day of this month | addDays(setDate(addMonths(date; 1); 1); -1) | First of next month, minus one day |
| Monday of the same Sunday-to-Saturday week | setDay(date; monday) | Sunday is day 1; accepts an English day name [1] |
Worked example 1: US-format CSV dates
A CSV export from a US system has an order date column like 03/07/2026, meaning March 7. Parse it with parseDate(order date; MM/DD/YYYY; America/New_York). Midnight on March 7, 2026 in New York is 05:00 UTC, because clocks there have not yet moved to daylight time, so the stored value is 2026-03-07T05:00:00.000Z. To write it to a sheet in ISO style, use formatDate(parsed date; YYYY-MM-DD; America/New_York), which returns 2026-03-07.
Two variants trip people up. If the column drops leading zeros (3/7/2026), use M/D/YYYY. [6] If the file came from a UK or European system, the same text 03/07/2026 means 3 July, and only DD/MM/YYYY reads it correctly. Check a date with a day above 12 in the sample, such as 03/17/2026, to prove which convention a file uses.
Worked example 2: a reminder 24 hours before an event
An events sheet holds start times with offsets, such as 2026-11-12T15:00:00-05:00, which is 3:00 PM in New York on Thursday, November 12, 2026. The reminder time is addHours(start; -24), or 2026-11-11T20:00:00Z.
Run the scenario hourly, search for events, and add a filter that passes events whose start is Later than or equal to addHours(now; 24) and Earlier than addHours(now; 25); Make's date filter operators include Later than or equal to and Earlier than. [3] As long as runs stay about an hour apart, each event matches in one run. In the email, show the time with formatDate(start; dddd, MMMM D, h:mm A; America/New_York), which reads Thursday, November 12, 3:00 PM.
Worked example 3: the off-by-one-day bug
A form sends a date-only value, 2026-11-05. Your organization time zone is UTC, so parseDate without a time zone reads it as midnight UTC, 2026-11-05T00:00:00Z. [1] A later step formats it for a West Coast client with formatDate(date; YYYY-MM-DD; America/Los_Angeles). Midnight UTC is 4:00 PM on November 4 in Los Angeles, so the email says November 4. The data was never wrong; it was parsed in one zone and formatted in another.
The fix is to decide which zone a date-only value belongs to and use it on both sides: parseDate(date; YYYY-MM-DD; America/Los_Angeles) followed by formatDate(date; YYYY-MM-DD; America/Los_Angeles). Make's date documentation describes both an organization time zone and a web time zone; [1] the functions default to the organization one, so a date that looks right while you browse can still be formatted differently inside a scenario. Daily schedules also follow the organization time zone, [5] so align it with where your customers are before debugging anything else.
| Symptom | Likely cause | Fix |
|---|---|---|
| Date shows one day early | Parsed at midnight UTC, formatted in a US zone | Pass the same time zone to parseDate and formatDate |
| Month and day swapped | MM/DD versus DD/MM format string | Test with a day above 12 |
| Time shows 03:00 instead of 15:00 | hh used instead of HH, or A missing | Use HH, or hh with A [2] |
| Minutes show the month | MM used where mm was meant | Use mm for minutes [2] |
| Daily run fires at the wrong hour | Organization time zone not set to yours | Profile, Time zone options, Scenarios, My organization [5] |
Watch demos / Official walkthroughs
See how the tools work.
Videos load from YouTube only when you press play. These are provider videos, not our own product tests.

Make / Official video
Make—Building Your First Automated Workflow from Scratch
What to look for: Follow how modules connect and how data moves through the first workflow.
Watch on YouTubeQuestions before you decide
What time zone does formatDate use in Make if I do not set one?
Your organization's time zone. Make's date function documentation says the optional timezone argument of formatDate and parseDate takes a TZ database name such as Europe/Prague or UTC, and that the organization time zone is used when you omit it.
How do I parse a US date like 03/07/2026 in Make?
Use parseDate with the format MM/DD/YYYY, and pass the time zone the date belongs to, for example parseDate(date; MM/DD/YYYY; America/New_York). Using DD/MM/YYYY by mistake would read the same text as July 3 instead of March 7.
How do I subtract time from a date in Make?
Use the add functions with a negative number. Make documents addDays, addHours, addMinutes, addMonths, addSeconds and addYears, and says to enter a negative number to subtract. A reminder 24 hours before an event is addHours of the start time with -24.
What does setDate do with a day number larger than the month has?
It rolls over. Make documents that setDate accepts 1 to 31 and that values outside that range roll into adjacent months; its example sets day 32 of August 2015 and gets September 1.
Sources & verification
Product details and prices can change. Check the linked provider before buying.
- Make Help Center: Date and time functions Accessed 30 Oct 2026
- Make Help Center: Tokens for date and time formatting Accessed 30 Oct 2026
- Make Academy: Adding a filter Accessed 30 Oct 2026
- Make Help Center: Step 10, schedule your scenario Accessed 30 Oct 2026
- Make Academy: Scheduling your scenario Accessed 30 Oct 2026
- Make Help Center: Tokens for date/time parsing Accessed 30 Oct 2026
Sources link directly to providers. Product buttons may use separately labeled affiliate links. Read our disclosure.
