Passé composé tells the completed events that move a story forward. Imparfait paints the background: description, state, and habit. The decision is about aspect: whether the action is completed or ongoing, and one sentence can use both. Here is the rule, the traps, and how to practice it out loud.
- ✓Passé composé is for completed events that move the story forward. Imparfait is for the background: description, state, habit, and scene.
- ✓The decision is about aspect: completed event versus ongoing background. Both tenses live in the past, and one sentence can use both.
- ✓The classic pattern is the interruption: Je lisais quand il est arrivé.
- ✓English is a poor guide. "Was doing" does not always mean imparfait, and the conditional -rais is not the imparfait -ais.
- ✓Knowing the rule and producing it under time pressure are different skills. Speaking practice is what closes that gap.
Short answer: passé composé moves the story forward with completed events, and imparfait paints the background. If the action has a clear beginning and end and pushes the narrative on, use passé composé. If you are describing a state, a habit, or a scene that was already running, use imparfait. A finished action inside ongoing background is the one pattern that uses both: Je lisais quand il est arrivé.
A quick note on who is writing this. I am building Coucou, an AI French tutor, and I am also the learner it was built for. My wife is French, which means my French gets tested at the family table, and I have the honest scars to show for it. I gave myself a personal goal of roughly B2 by the end of 2026. Right now, around Day 93, my roadmap says B1 with 66 of 66 milestones functional, and the honest summary of where I am is that I am working si-clause hypotheticals and conditional production, with the conditional endings still emerging. I am not fluent. This page is the wall I am standing at right now, which is why the examples below are the ones I actually practice.
The decision rule in one sentence
The rule that finally made sense to me is short. Passé composé is for completed events that move the story forward. Imparfait is for the background that was already there: description, state, habit, and scene.
Most courses teach the shortcut "imparfait for was doing, passé composé for did". That version works in the easy cases and breaks exactly when you need it most, because the decision runs on aspect: is the action a finished event, or is it ongoing background?
Two quick tests. First, can you see the action beginning and ending? Hier, j'ai vu un film. The film started and finished, and the sentence reports it as a closed event. That is passé composé. Second, is the action describing the setting rather than advancing it? Il faisait beau. Nothing starts or ends, the weather simply was. That is imparfait.
The proof that aspect decides the tense is that one sentence can use both tenses about the same moment. Je lisais quand il est arrivé. The reading was ongoing background, the arrival was a completed event that cut into it. Both tenses, one sentence, no contradiction.
The two tenses at a glance
Completed events: the passé composé
Passé composé is the storytelling tense. You use it for the things that actually happened, one after another, each with a beginning and an end. Hier, je me suis levé, j'ai pris un café, et je suis sorti. Three events, three passé composé verbs, the story moves.
The clearest trigger is a time expression that closes the window: hier, ce matin, à 20 heures, une fois, or a finished duration like pendant deux ans. That last one is the one I am working on right now. The sentence that drove it home was from my own practice: il a passé toute la matinée à chercher son frère. Toute la matinée is a closed window, the morning is over, so the whole thing lands in passé composé. If the morning were still running, the sentence would change shape completely.
A warning that cost me time: pendant is a trap word. Pendant deux ans with passé composé means a completed stretch, J'ai travaillé là pendant deux ans. But pendant que means while and starts its own clause, Je lisais pendant que tu dormais, and it takes whatever tense that clause needs. Same family of words, different behavior.
The background: description, state, and habit
Imparfait does not report the events that move the story. It paints what was already there while the events happened. Three jobs, all background.
Description and state: Il faisait beau, les oiseaux chantaient. The weather and the birds were running before anything else started. Feelings and states live here too: J'avais peur, je ne savais pas quoi dire.
Habit and repetition: Tous les étés, nous allions chez ma grand-mère. The repeated summers have no single start and end, each one blurs into the next, so imparfait carries the whole idea. The trigger words are the rhythm words: souvent, d'habitude, tous les jours, autrefois, quand j'étais petit.
Scene-setting: Il était minuit, la ville dormait. Every story needs a stage before the action, and the stage is usually imparfait. Native speakers set the scene in imparfait, then drop the first event in passé composé, and that switch is the moment the story begins.
The interruption pattern: one sentence, two tenses
This is the single most useful pattern on the page, because it forces you to use both tenses correctly in the same breath.
Je lisais quand il est arrivé.
The background action, the reading, takes imparfait. The event that cut into it, the arrival, takes passé composé. The same shape covers the when-sentences built on interruption: Je travaillais quand le téléphone a sonné. Nous dînions quand tu as appelé. J'allais partir quand il est arrivé, where j'allais is itself imparfait of aller and means I was about to. It does not cover every when-sentence, of course. Quand j'étais petit, je jouais au foot is all background, and Quand il est arrivé, j'ai ouvert la porte is two completed events in a row.
If you can build this pattern, you understand the whole distinction, because it makes you decide which half of the sentence is background and which half is the event. Everything else is vocabulary.
The traps that break the shortcuts
Three traps trip learners at exactly the moment the shortcuts stop working.
The "was doing" trap. English is a poor guide because "was doing" covers several different French structures. Ongoing action, I was reading, is imparfait. About to do something, I was going to leave, is j'allais partir, aller in imparfait plus the infinitive. And "would do" in a conditional sense is the conditional tense, not imparfait at all. The English form does not tell you which one you need.
The -ais sound trap. Imparfait and the conditional share endings that sound almost identical, and this is where I slipped live. On August 11 I wrote voyageais when I meant voyagerais in a si-clause: si j'avais le temps, je voyagerais, meaning if I had the time, I would travel. Voyageais is imperfect, I was traveling. Voyagerais is conditional, I would travel. One letter changes the meaning from past background to hypothetical, and my tutor caught it in the conversation. The tutor's current summary of my level literally headlines this: working si-clause hypotheticals and conditional production, with the conditional endings still emerging. This slip is why I keep the rule in front of me: the -ais ending is a guess until you know which tense you are in.
The meaning-shift verbs. A small set of verbs mean different things in the two tenses. Savoir: je savais la réponse means I knew it, j'ai su la nouvelle means I found out. Vouloir: je voulais te demander means I wanted to ask, j'ai voulu partir means I tried to leave. Pouvoir: je pouvais nager means I could swim, j'ai pu finir means I managed to finish. These are not advanced trivia, they come up in normal conversation, and natives switch between them without thinking.
Why knowing the rule is not enough
Here is the honest part, and it is the reason this page exists. Every grammar resource teaches you to recognize the right tense in a quiz, and recognition is the easy half. The hard half is producing the right tense while you are building a sentence out loud, under time pressure, with someone listening.
My own receipts make the gap concrete. On August 8 and 9, in back to back sessions, the imperfect forms travaillions and comprenais each took me multiple tries to get out. I knew the forms. I had written them correctly in drills. The failure was production, not knowledge, and it only shows up when you speak. The voyageais slip the same week was the same failure in the other direction: I produced the wrong tense confidently because the sounds are so close.
The practice loop that actually moves this is speaking and getting told which tense slipped. Recording yourself catches some of it. A second set of ears catches more. That is the honest seam where the tool I am building fits. Coucou, the AI French tutor I am building, texts you when it is time to practice, so the production reps happen daily. It scores your pronunciation per word, names the word that was off, and sends native model audio back, and it spaces out your mistakes so the same slip resurfaces until you fix it. When a new grammar concept comes up, it states the rule first, then drills the form, which is exactly the order this page uses. Free conversation also counts toward your progress, which matters because this is where slips like voyageais actually surface.
The honest limits are real. A few tools now score pronunciation, mostly on drilled or copied lines, Copycat on copied phrases and Conversaflex on phoneme drills, so Coucou is not the only scorer in the field. Its scoring is good but not flawless, and it can misread fast or noisy audio. It is not a replacement for a human teacher, and it does not promise fluency. It is free while early access lasts, and I approve new people by hand, usually within a few hours. The bigger point is the mechanic, not any single tool: tense choice is a production skill, and production skills need daily output plus feedback.
How to practice choosing the tense
A ten minute routine that targets exactly this wall. First, set the scene: describe the weather, the place, and what you were doing, all in imparfait. Il faisait beau, j'étais au café, je lisais. Second, report the events: what happened next, each one in passé composé. J'ai commandé un café, le serveur est arrivé, j'ai payé. Third, build one interruption sentence: Je lisais quand le serveur est arrivé. Fourth, record the whole thing and listen for the spots where you hesitated between the tenses, because hesitation is the slip happening in slow motion.
The guide to practicing French speaking alone has the full recording routine, and the article on getting unstuck at intermediate level covers why grammar knowledge and speaking ability diverge in the first place. If your block is that you understand French but freeze when producing it, the flagship article on that exact problem is where the whole story starts, and the page on AI pronunciation scoring explains what a scored check can and cannot do.
The short version of this page is one sentence: decide if the action is a finished event or ongoing background, let the background take imparfait, let the event take passé composé, and practice the decision out loud until it stops being a decision.
Last updated: 12 August 2026. This is a personal account from someone still learning, not expert linguistic advice. French examples reflect standard usage, and spoken French bends rules in ways textbooks do not.
Frequently asked
Coucou is a free AI French tutor that makes you speak — voice in, pronunciation scored, a real correction every day. Built solo. trycoucou.app