"Prep doc with Jen friday afternoon" has to become an event with a title, a date, a start time, a duration and an attendee. None of those are stated explicitly. Two of them are ambiguous. One of them depends on what the rest of Friday already contains.
The first job is extraction: pull the entities out of the sentence. Who, what, roughly when. This is the part people expect a language model to be good at, and it is.
The second job is placement, and it is not a language problem at all. "Friday afternoon" is a window, not a time. Choosing where in that window the block goes depends on what else is on Friday, how long the thing probably takes, and which of your rules apply. That is a constraint solver, and it runs locally against your actual calendar rather than in a model.
Separating the two is what makes it feel reliable. The model never guesses at a time; it produces a window, and the calendar picks inside it.
Every parse renders what it understood as discrete chips before it commits: who, when, how long, what type. A wrong guess is one click to correct, in the moment, rather than something you discover on Friday when you are not where you expected to be.
This is unglamorous and it matters more than the model choice. A system that is right ninety-five percent of the time and silent about the other five feels worse to use than one that is right ninety percent of the time and obvious about it.
Google shows this localized button when Preferred Sources is available for eligible domains in your region.
Free to try. Your calendar, calmer by this afternoon.