Why we never let the AI pick the year
Say 'the 5th of January' and a model will happily add a year. We stopped it, and made the app show you whenever a year was assumed.
UTTER IN2 min read

Nobody says the year. You say "dinner on the 5th of January" or "the dentist on Thursday", and the year is obvious to you. It is much less obvious to a language model, and the mistakes it makes are the quiet kind.
The bug that looks like a correct answer
Ask a model to turn "the 5th of January" into a date and it will give you one, with a year attached. Sometimes that year is the one that has already passed. Sometimes it is the year the model's training data thinks it is. The result is a perfectly formatted date, shown confidently on a card, that is wrong.
Nothing about it looks broken. That is the problem.
So the model is not allowed to choose
The rule we settled on is strict: the AI must never write a year you did not say. It reports the day and month it heard, and our own code works out the year, using fixed rules and your time zone:
- A date with no year means the next time that date comes round. We never produce a date in the past from something you said about the future.
- If you do say a year, it is kept exactly as you said it.
- "This Thursday" means within the coming seven days. "Next Thursday" means the week after.
- Birthdays and anniversaries repeat every year.
And when a year was assumed, you see it
Working the year out correctly is only half of it. The other half is being honest that it was worked out.
Whenever the year came from our rules rather than from you, the card shows an ASSUMED row with the year, and you can change it right there. Said in October, "the 5th of January" shows up as Tue 5 Jan 2027, with the 2027 marked as assumed.
Dates are always written day first, as weekday, day and month, and the year is shown whenever the date falls outside the current year. A date in January, read in October, should never leave you wondering which January.
The general lesson
The model is good at hearing what you said. It is not the right thing to decide what you meant when you did not say it. That decision belongs to ordinary code that behaves the same way every time, and to you, with the assumption shown in plain view.
A plan you cannot fully trust is one you have to double-check, and a plan you have to double-check has not taken anything off your mind.
Something to add, or something we got wrong? Tell us.

