The passé composé doesn't choose itself in a vacuum — it chooses itself partly in response to the time expression a sentence carries. Hier triggers it. Tous les jours triggers the imparfait. Pendant cinq ans and il y a deux jours both trigger the passé composé but contribute different durational meanings. And depuis cinq ans — the one English speakers want to translate as I have lived — actually triggers the present in French, not the passé composé. That last point is the single most diagnostic English-speaker error, and it deserves a full section.
This page covers the family of time expressions that interact with the passé composé: pendant, pour, en, depuis, il y a, plus the simple temporal markers (hier, ce matin, en 2023) that lock a sentence into past time. The goal is not just to list which words go with which tense — it is to give you the underlying logic, so that you can pick the right combination without memorising every case.
Specific past time markers: locking the sentence into the past
Some time expressions identify a specific past moment or a closed past period. They naturally trigger the passé composé because they presuppose a completed event, anchored at a definite point in past time.
| Marker | Meaning | Register |
|---|---|---|
| hier | yesterday | neutral |
| avant-hier | day before yesterday | neutral |
| ce matin / ce soir | this morning / evening | neutral |
| cet après-midi | this afternoon | neutral |
| la semaine dernière | last week | neutral |
| le mois dernier | last month | neutral |
| l'année dernière / l'an dernier | last year | neutral |
| l'autre jour | the other day | conversational |
| en + year (en 2023) | in (year) | neutral |
| en + month (en mars) | in (month) | neutral |
| à + clock time (à cinq heures) | at (time) | neutral |
| lundi (without article, with clock time) | on Monday | neutral |
These markers all share the property of locating an event at a specific point or within a specific closed period. They do not describe ongoing states.
Hier, j'ai retrouvé une vieille photo de mon grand-père.
Yesterday, I found an old photo of my grandfather.
L'année dernière, on est partis en Grèce pour les vacances d'été.
Last year, we went to Greece for the summer holidays.
En 2020, j'ai déménagé à Lyon pour mon nouveau travail.
In 2020, I moved to Lyon for my new job.
Lundi, j'ai eu un rendez-vous chez le médecin à seize heures.
On Monday, I had a doctor's appointment at four.
A small but important nuance: lundi without an article means on a specific Monday (usually the most recent or upcoming one), and pairs naturally with the passé composé. Le lundi with the definite article means every Monday, and pairs with the imparfait — see imparfait uses-habitual. The same word, different meanings, different tenses.
Il y a + duration: "ago"
The expression il y a + duration translates English "ago." It locates an event at a point in past time measured backward from now. It always pairs with the passé composé in this use.
Je suis arrivé à Paris il y a trois ans.
I arrived in Paris three years ago.
On s'est rencontrés il y a six mois, sur un quai de gare.
We met six months ago, on a train platform.
Il y a une semaine, j'ai reçu une lettre étrange dans ma boîte.
A week ago, I got a strange letter in my mailbox.
J'ai arrêté de fumer il y a deux ans, et je ne le regrette pas.
I quit smoking two years ago, and I don't regret it.
The construction is rigid: il y a + measurable duration. Il y a longtemps (a long time ago) is the idiomatic vague version. Note that il y a placed at the start of the sentence is more emphatic; placed at the end is more neutral. Both are correct.
Pendant + duration: completed duration with passé composé
Pendant + duration means "for/during" a closed period. It packages a stretch of time into a single completed event, viewed from the outside as a closed unit. With this packaging meaning, pendant pairs naturally with the passé composé.
J'ai habité à Paris pendant cinq ans, de 2010 à 2015.
I lived in Paris for five years, from 2010 to 2015.
On a marché pendant trois heures avant de trouver le refuge.
We walked for three hours before we found the lodge.
Il a travaillé sur ce projet pendant six mois sans relâche.
He worked on this project for six months without a break.
Pendant les vacances, j'ai lu trois romans entiers.
During the holidays, I read three whole novels.
The mental picture is important. Pendant cinq ans views the five years as a single block — start to end, all of it, complete. The passé composé is the right tense because the speaker is treating the action as a closed event, even if that event is long.
If, instead, you want to describe the ongoing situation during that period — the weather, what people were doing, the rhythm of life — you switch to the imparfait. Compare:
Pendant les vacances, j'ai voyagé en Italie pendant deux semaines.
During the holidays, I traveled in Italy for two weeks. (PC — completed event, packaged)
Pendant les vacances, je voyageais beaucoup ; je ne restais jamais au même endroit.
During the holidays, I was traveling a lot; I never stayed in the same place. (imparfait — ongoing/repeated description)
The first sentence reports a completed trip. The second describes a habitual or ongoing pattern within the holiday period. Same word, pendant, different tenses, different meanings.
Pour + duration: planned duration (often future)
Pour + duration is sometimes confused with pendant, but it has a different meaning. Pour expresses planned duration — the time something is intended or arranged to last, often before the event begins. It pairs more naturally with the present or the future than with the passé composé in modern French.
Je pars pour deux semaines en Espagne.
I'm leaving for two weeks in Spain.
Elle est venue pour trois jours, mais finalement elle est restée une semaine.
She came for three days, but in the end she stayed a week.
On va à la montagne pour le week-end.
We're going to the mountains for the weekend.
A clear test: pour describes the planned length, which may or may not match what actually happened. Elle est venue pour trois jours says she planned to be here three days; elle est restée pendant trois jours says she actually was here three days. The two are different, and using one for the other is a common error.
In casual modern French, pour and pendant are sometimes used interchangeably with motion verbs (partir, venir), but in careful French the distinction matters.
En + duration: time taken to complete
En + duration measures how long it took to do something. It pairs with the passé composé because the action is presented as completed, with the duration measuring the elapsed time of completion.
J'ai fini le rapport en deux heures, alors que je m'attendais à y passer la journée.
I finished the report in two hours, even though I expected to spend the whole day on it.
Il a appris l'italien en six mois grâce à une appli.
He learned Italian in six months thanks to an app.
On a fait Paris-Marseille en quatre heures de TGV.
We did Paris-Marseille in four hours by high-speed train.
The contrast with pendant is sharp:
- J'ai écrit ce livre en deux ans. = It took me two years to write this book.
- J'ai écrit ce livre pendant deux ans. = I was writing this book for two years (the writing went on for two years; whether it's done is left open).
The en version emphasises completion and the time-to-completion; the pendant version emphasises duration of activity.
Elle a écrit sa thèse en trois ans.
She wrote her dissertation in three years (it took three years).
Elle a écrit sur ce sujet pendant trois ans.
She wrote on this subject for three years (she spent three years writing about it).
Depuis: the trap
Now we come to the place where English speakers most often go wrong. Depuis means "since" or "for" with a sense of duration extending from a past starting point up to now. In English, this meaning takes the present perfect (or the present perfect continuous): I have lived here for five years. I have been working here since 2020.
In French, this meaning takes the present, not the passé composé. The action is still ongoing, and French marks ongoing-ness with the present, not with a perfect tense.
| English | English tense | French | French tense |
|---|---|---|---|
| I have lived here for five years. | present perfect | J'habite ici depuis cinq ans. | présent |
| I have been working since 2020. | present perfect continuous | Je travaille depuis 2020. | présent |
| She has known him since high school. | present perfect | Elle le connaît depuis le lycée. | présent |
| We have been waiting for an hour. | present perfect continuous | On attend depuis une heure. | présent |
The logic: if the action is still going on at the moment of speaking, French uses the present. The action's having started in the past is conveyed by depuis; its still-being-true is conveyed by the present tense.
J'habite à Bordeaux depuis 2018, et j'aime de plus en plus la ville.
I have lived in Bordeaux since 2018, and I love the city more and more.
On attend le bus depuis vingt minutes, ça commence à devenir long.
We've been waiting for the bus for twenty minutes — it's starting to feel long.
Je connais Marie depuis l'enfance ; on a grandi dans le même village.
I have known Marie since childhood; we grew up in the same village.
If, on the other hand, the action has ended — you no longer live there, you no longer wait, you no longer know that person — then the period is closed, and you use pendant + passé composé instead:
J'ai habité à Bordeaux pendant cinq ans, puis j'ai déménagé à Lille.
I lived in Bordeaux for five years, then I moved to Lille.
This is the cleanest test: if the action continues to now, use depuis + present; if the action is finished, use pendant + passé composé.
The exception: depuis + passé composé in negative sentences
There is one important exception. With negative verbs, depuis can take the passé composé, because a non-event has by definition been ongoing since whenever it last happened.
Je n'ai pas vu Marie depuis deux ans.
I haven't seen Marie for two years.
On n'a pas mangé de viande depuis trois mois.
We haven't eaten meat for three months.
Il n'a pas plu depuis le mois d'avril.
It hasn't rained since April.
The logic: the speaker is reporting that an event has not occurred during a stretch of time extending up to now. The non-event itself is bounded — what's continuous is the absence — so French reaches for the passé composé to mark the non-occurrence as a complete fact about the past period.
This is a subtle point. The pattern is rigid: depuis + duration + present (positive), or depuis + duration + passé composé (negative).
A second exception: "lived" experience with depuis (modern usage)
In modern French, you increasingly hear sentences like J'ai vécu à Paris depuis 2010 meaning "I have lived in Paris since 2010 (and I'm still there)." Prescriptively, this should be je vis à Paris depuis 2010. The passé composé version is heard especially when the speaker wants to emphasise the lived-experience quality of the period — the accumulation of those years as a completed body of experience that bears on the present moment.
Stick to the prescriptive rule (depuis + present for ongoing situations) in your own production, but recognise that the passé composé version exists and is increasingly common.
Putting it all together: a comparison table
| Time expression | Meaning | Tense | Example |
|---|---|---|---|
| hier, ce matin, en 2023 | specific past moment | passé composé | Hier, j'ai vu Marie. |
| il y a + duration | "ago" (point in past) | passé composé | Je suis arrivé il y a deux ans. |
| pendant + duration | completed duration (closed) | passé composé | J'ai habité à Paris pendant cinq ans. |
| en + duration | time taken to complete | passé composé | J'ai fini en deux heures. |
| pour + duration | planned duration | présent / futur | Je pars pour deux semaines. |
| depuis + duration (positive) | "for/since" (still ongoing) | présent | J'habite ici depuis cinq ans. |
| depuis + duration (negative) | "for/since" (non-occurrence) | passé composé | Je n'ai pas vu Marie depuis deux ans. |
| tous les jours, le lundi | habit, recurrence | imparfait | Tous les jours, je marchais. |
Notice the symmetry. Pendant and il y a both pair with the passé composé but contribute different meanings (closed duration vs. ago-distance). En pairs with the passé composé to measure completion time. Depuis breaks the pattern: it usually triggers the present, with the negative passé composé as a special case. Tous les jours and the definite-article weekday names trigger the imparfait, because they describe habit, not event.
Comparison with English
English has the same conceptual divide between event and ongoing-state in the past, but it expresses the divide differently. English uses the present perfect for state-extending-to-now (I have lived here for five years), reserving the simple past for closed events (I lived in Paris from 2010 to 2015). French collapses the two English constructions into a different cut: closed events → passé composé; ongoing states extending to now → present. The English present-perfect-with-for/since pattern simply doesn't translate to a French perfect — it translates to a French present.
This is the source of the most diagnostic English-speaker error: *j'ai habité ici depuis cinq ans. The error has perfect surface logic — present perfect ↔ passé composé, for/since ↔ depuis — but it produces an ungrammatical French sentence. The right output is j'habite ici depuis cinq ans. Memorise this single example and you'll catch yourself before making the mistake elsewhere.
The opposite trap exists too: an English speaker who has internalised "depuis = present" sometimes uses the present for situations that are actually closed: *Je vis à Paris pendant cinq ans. That sentence sounds wrong because pendant cinq ans signals a closed period, which calls for the passé composé. The cure is the same: use the test "is the situation still ongoing?" Yes → present + depuis. No → passé composé + pendant.
Common Mistakes
Mistake 1: Using passé composé with depuis for an ongoing situation.
❌ J'ai habité ici depuis cinq ans.
Incorrect — if you still live here, French uses the present, not the passé composé. The construction is depuis + présent for ongoing situations.
✅ J'habite ici depuis cinq ans.
I have lived here for five years (and still do).
Mistake 2: Using présent with pendant for a closed past period.
❌ J'habite à Paris pendant cinq ans.
Incorrect — pendant + closed duration calls for the passé composé. Use j'ai habité.
✅ J'ai habité à Paris pendant cinq ans, puis j'ai déménagé.
I lived in Paris for five years, then I moved.
Mistake 3: Confusing pendant and en.
❌ J'ai fini le rapport pendant deux heures.
Awkward — pendant emphasises duration of activity ('I was finishing for two hours'). For 'it took me two hours to finish', use en.
✅ J'ai fini le rapport en deux heures.
I finished the report in two hours.
Mistake 4: Mistaking le lundi (habitual) for lundi (specific).
❌ Le lundi, j'ai vu Marie au café.
Incorrect — le lundi means 'every Monday' (habitual, imparfait). For a specific Monday, use lundi without the article.
✅ Lundi, j'ai vu Marie au café.
On Monday, I saw Marie at the café.
✅ Le lundi, je voyais Marie au café.
On Mondays, I used to see Marie at the café.
Mistake 5: Forgetting that il y a means "ago," not "for."
❌ J'habite ici il y a cinq ans.
Incorrect — il y a + duration means 'ago', not 'for'. The sentence as written says nonsensically 'I live here five years ago'. For ongoing duration, use depuis cinq ans.
✅ J'habite ici depuis cinq ans.
I have lived here for five years.
✅ Je suis arrivé ici il y a cinq ans.
I arrived here five years ago.
Mistake 6: Translating "I haven't seen X for Y" as imparfait.
❌ Je ne voyais pas Marie depuis deux ans.
Incorrect — for a non-event extending to now, French uses depuis + passé composé, not imparfait.
✅ Je n'ai pas vu Marie depuis deux ans.
I haven't seen Marie for two years.
Key takeaways
The passé composé pairs with time expressions that present a past event as bounded — hier, ce matin, en 2023, il y a deux jours, pendant cinq ans, en deux heures. It does not pair with depuis for ongoing situations, because those use the present: j'habite ici depuis cinq ans. The negative exception (je n'ai pas vu Marie depuis deux ans) is the one place where depuis can take the passé composé.
The English-to-French jump is the central trap. English present perfect with for/since maps to French present + depuis, not to French passé composé. Burn that into memory and you will avoid the most diagnostic English-speaker error in French past-tense grammar.
Now practice French
Reading grammar gets you part of the way. The exercises are where it sticks — free, no signup needed.
Start learning French→Related Topics
- Le Passé Composé: OverviewA1 — The passé composé is French's main spoken past tense — used for completed past events, formed with avoir or être plus a past participle. It does the work that English splits between simple past (I ate) and present perfect (I have eaten).
- Le Passé Composé pour ÉvénementsA1 — How to use the passé composé to narrate completed past events — single actions, sequences, and the moment-by-moment storytelling layer of conversational French.
- Le Passé Composé NégatifA1 — How to negate the passé composé — ne...pas surrounds the auxiliary, not the participle, plus the position rules for rien, jamais, plus, encore, and the special case of personne.
- L'Imparfait pour les Actions HabituellesA2 — How to express past habits in French with the imparfait — the tense that covers English 'used to', habitual 'would', and the simple past with frequency adverbs. Time markers, the would/would trap, and how to tell habit from event.
- L'Imparfait pour la DescriptionA2 — How French uses the imparfait to paint past scenes — weather, surroundings, people's appearance, mental and physical states. The descriptive backdrop on which passé-composé events unfold, plus the critical state-vs-change-of-state distinction.
- L'Accord du Participe Passé avec ÊtreA2 — How to make the past participle agree with the subject when the auxiliary is être — gender, number, the masculine-default for mixed groups, the on-puzzle, and where the agreement is silent vs. audible.