Guide / Zapier / 6 min read
Form dates breaking your Zaps? How to clean messy dates before they reach Airtable
Normalise UK, US, written and spreadsheet dates in one Code by Zapier step, and send anything ambiguous for a human check instead of guessing.
A form says the date is 03/04/2026. Is that 3 April or 4 March? If your automation guesses, a booking can land in Airtable a month out, and nobody notices until a customer turns up on the wrong day. Other times the Zap just fails, because the form sent 24th Oct, a spreadsheet number like 46319, or the word tomorrow. I build, fix and improve technical systems for businesses, and this guide explains a small helper I built for exactly this problem.
1. Why one Formatter step is not always enough
My guide to UK date formats in Zapier covers the usual repair: tell Formatter by Zapier the input format, then send an ISO date onwards. That works well when every value arrives in the same format. It is harder when a free text field, an email parser or a shared spreadsheet sends dates in several shapes, because one From Format cannot describe them all.
The helper handles that mixed input in a single Code by Zapier step and returns a clean YYYY-MM-DD date that an Airtable date field accepts.
2. What it understands
It reads ISO dates, with or without a time part. It reads numeric dates with slashes, dashes or dots and two or four digit years. It reads written dates such as 24 Oct 2026, 24th October 2026 and October 24, 2026. It also reads today, tomorrow and yesterday, Excel and Google Sheets serial numbers, and Unix timestamps in seconds or milliseconds, which it reads as UTC. When a written date has no year, it assumes the current year and says so in a note.
3. What it refuses to do
The important part is what it will not do. When a date could be read two ways, such as 03/04/2026, it returns the reading for your chosen preference, UK by default, and marks the result as ambiguous. Your Zap can then send it for a quick human check instead of saving a guess.
Impossible dates such as 31/02/2026 come back as invalid with no date, rather than quietly rolling into March. Empty fields come back as empty. Nonsense comes back as invalid with a short note. Every call returns the same small shape:
{"iso": "2026-04-03", "status": "ambiguous",
"note": "day and month could swap; read as UK"}
The status is always one of ok, ambiguous, empty or invalid, so a later step can filter on it without reading the note.
4. Adding it to a Zap
Add a Code by Zapier step after the trigger and choose Run Python. In Input Data, map the form's date field to date. If your forms mostly come from the US, add prefer set to US. Paste the helper's code, then finish with one line:
output = zapier_step(input_data)
Map the iso output into your Airtable date field. Then add a Filter or Paths step so that anything with a status other than ok goes to a review list or a marked Airtable view instead of the main table. The helper uses only the Python standard library, so nothing needs installing inside Zapier.
5. Tested on the awkward cases
There are 18 automated tests. They fix today to a set date so results do not change from day to day, and they cover every format above plus empty fields, impossible dates, leap years and nonsense input. All of the test values are made up.
Before you switch a Zap on, test a safe record with an ambiguous date and a clear one, such as 03/11/2026 and 25/11/2026, and check what actually reaches Airtable. My UK date to ISO converter is useful for checking a sample by hand.
6. Limits worth knowing
The helper drops any time part and does not convert time zones, so use it for calendar dates such as bookings, deadlines and start dates. It does not understand phrases like next Friday. Those are deliberate limits: a small helper that flags what it cannot read is safer than a clever one that guesses.
When dates keep breaking
If your automations keep failing on dates, or saving the wrong ones, this is the kind of small fix I do. See my integrations service for scoped repairs between forms and connected apps, or book a free systems check to talk it through.