The Spanish Perfect Tenses
Adapted from The Animated Book of Spanish, an interactive Spanish grammar book.
| Subject | haberpresent tense | past participlenever changes |
|---|---|---|
| yo | he | hablado |
| tú | has | hablado |
| él / ella / usted | ha | hablado |
| nosotros | hemos | hablado |
| vosotros | habéis | hablado |
| ellos / ellas / ustedes | han | hablado |
On this page
How to form the present perfect
Take the present tense of haber and add the past participle. Only haber changes to match the subject.
Haber is the correct helper verb for have here. Don't be tempted to literally translate using tener. For more details on the participle, see the past participle.
When to use the present perfect
Use the present perfect for past actions that are still connected to now.
Experiences
Things that have (or haven’t) happened at some point in your life.
¿Has estado alguna vez en México?
Have you ever been to Mexico?
He leído ese libro dos veces.
I’ve read that book twice.
Mis hijos nunca han visto la nieve.
My kids have never seen snow.
A time period that isn’t over
Things that happened today, this week, or this year, while that period is still going on.
Este año hemos viajado mucho.
We’ve traveled a lot this year.
Esta semana no he dormido bien.
I haven’t slept well this week.
Hoy has trabajado mucho.
You’ve worked a lot today.
With ya, todavía no, and aún no
Whether something has happened yet.
Los niños ya han terminado la tarea.
The kids have already finished their homework.
Todavía no he comido.
I haven’t eaten yet.
¿Ya has visto la película?
Have you seen the movie yet?
Where pronouns and no go
Haber and the participle always stay together. Object pronouns, reflexive pronouns, and no all go before haber, never in between, and never on the end of the participle.
Lo he visto.
I’ve seen it.
No hemos terminado.
We haven’t finished.
Todavía no me he duchado.
I haven’t showered yet.
¿Se lo has dicho?
Have you told him?
This is different from the progressive and ir a + infinitive, where the pronoun can also attach to the end: estoy haciéndolo, voy a hacerlo. With haber, it can't.
Other perfect tenses
To make the other perfect tenses, change the tense of haber. The participle stays exactly the same.
| Tense | Form | Meaning |
|---|---|---|
| Present perfect | he hablado | I have spoken |
| Past perfect | había hablado | I had spoken |
| Future perfect | habré hablado | I will have spoken |
| Conditional perfect | habría hablado | I would have spoken |
The past perfect
Something that had already happened before another moment in the past.
yohabía hablado | nosotroshabíamos hablado |
túhabías hablado | vosotroshabíais hablado |
él / ella / ustedhabía hablado | ellos / ellas / ustedeshabían hablado |
Cuando llegué, la película ya había empezado.
When I arrived, the movie had already started.
Nunca habíamos comido algo tan picante.
We had never eaten anything so spicy.
¿Ya habías estado en Madrid antes?
Had you been to Madrid before?
The future perfect
Something that will have happened by a certain point. Like the future, it can also be a guess, here about the recent past.
yohabré hablado | nosotroshabremos hablado |
túhabrás hablado | vosotroshabréis hablado |
él / ella / ustedhabrá hablado | ellos / ellas / ustedeshabrán hablado |
Para el viernes, habremos terminado el proyecto.
By Friday, we’ll have finished the project.
No contesta. Habrá salido.
She’s not answering. She must have gone out.
A estas horas, ya habrán llegado al hotel.
By now, they must have gotten to the hotel.
The conditional perfect
What would have happened.
yohabría hablado | nosotroshabríamos hablado |
túhabrías hablado | vosotroshabríais hablado |
él / ella / ustedhabría hablado | ellos / ellas / ustedeshabrían hablado |
Yo no lo habría hecho.
I wouldn’t have done it.
Con más tiempo, habríamos visitado Sevilla.
With more time, we would have visited Seville.
¿Habrías aceptado el trabajo?
Would you have taken the job?
Common mistakes English speakers make
Using tener instead of haber
Incorrect:Ya tengo comido.Correct:Ya he comido.In the perfect tenses, “have” is always haber. Tener only means to have in the sense of owning or holding something.
Putting a word between haber and the participle
Incorrect:He no terminado.Correct:No he terminado.Nothing goes between haber and the participle, not even no or ya.
Putting the pronoun after the participle
Incorrect:He visto lo.Correct:Lo he visto.With haber, pronouns always go before it. They never attach to the participle.
Using the present perfect with a finished time
Incorrect:Ayer he visto a Marta.Correct:Ayer vi a Marta.With a finished time like ayer or el año pasado, use the preterite.
Translating “have been … for” word for word
Sounds unnatural:He vivido aquí por dos años.Correct:Vivo aquí desde hace dos años.For something that started in the past and is still going on, Spanish usually uses the present tense with desde hace.
Questions about the perfect tenses
What is the difference between he hablado and hablé?
Both talk about the past. He hablado (the present perfect) connects the action to now: an experience, or something in a period that isn't over yet (Hoy he hablado con ella). Hablé (the preterite) is for something finished at a specific time (Ayer hablé con ella).
In much of Latin America, the preterite is used for both.
Do Latin Americans use the present perfect?
Yes, but less than in Spain. It's common for experiences and with ya or todavía no (¿Ya has comido?), while the preterite is often used where Spain would use the present perfect (Hoy comí temprano).
Why is it haber and not tener?
Spanish has two verbs for "have." Tener is for owning or holding things, and haber is the helper verb for the perfect tenses: Tengo un libro ("I have a book") vs. He leído el libro ("I have read the book").
How do you say "I have been doing" in Spanish?
For something that's still going on, Spanish usually uses the present with desde hace, or llevar + gerund: Estudio español desde hace dos años or Llevo dos años estudiando español ("I've been studying Spanish for two years").
What is the past perfect in Spanish?
Había + past participle: había hablado ("I had spoken"). It's for something that happened before another moment in the past: Cuando llegué, ya habían salido ("When I arrived, they had already left"). It's also called the pluperfect.
Keep learning
Related
- The past participleThe ‑ado / ‑ido form: irregulars, the perfect tenses, and adjectives.
- The preteriteFinished actions: regular endings, irregular stems, and spelling changes.
- Direct object pronounsMe, te, lo, la, nos, los, las: what a direct object is, where the pronoun goes, and the personal a.
- The future tensePredictions, promises, guesses, and the 12 irregular stems.
