Home · Grammar Hub · The perfect tenses
Bonus · Grammar Hub · A2–B2
He hablado, había hablado, habré hablado: one formula, three tenses. Learn the shared base, then pick a tense to open its full theory, clear conjugations and its own exercises — 106 in total.
Leer en españolAll three perfect tenses are built the same way: the verb haber (conjugated) + the past participle of the main verb. Only haber changes — it tells you when. The participle stays exactly the same.
| Person | Present perfect | Past perfect | Future perfect |
|---|---|---|---|
| yo | he hablado | había hablado | habré hablado |
| tú | has hablado | habías hablado | habrás hablado |
| él / ella / usted | ha hablado | había hablado | habrá hablado |
| nosotros | hemos hablado | habíamos hablado | habremos hablado |
| vosotros | habéis hablado | habíais hablado | habréis hablado |
| ellos / ellas / ustedes | han hablado | habían hablado | habrán hablado |
Here haber is only a helper verb — it never means “to have” (that's tener). English does the same with have: I have spoken · I had spoken · I will have spoken.
Most participles are regular. Take off the -ar, -er, -ir ending and add:
hablado trabajado estado
hablar · trabajar · estarcomido tenido vivido
comer · tener · vivir · also ser → sido, ir → idoWritten accent: when the stem ends in a vowel (a, e, o), -ido takes an accent: leer → leído, creer → creído, traer → traído, oír → oído, reír → reído, caer → caído. But -uir verbs don't: construir → construido, incluir → incluido.
These are the ones you'll use every day. Most end in -to or -cho, and the pattern carries over to related verbs: volver → vuelto, devolver → devuelto · poner → puesto, proponer → propuesto · escribir → escrito, describir → descrito. Tap a card to see the participle in a real sentence.
With haber it's always -o: no gender, no plural. Ella ha comido (not comida). Las cartas las he escrito (not escritas).
Nothing goes in between — not ya, not nunca, not a pronoun. Nunca he estado (not he nunca estado). English splits them (I have never been); Spanish doesn't.
Object and reflexive pronouns sit in front of the whole block: Ya lo he visto. ¿Te has duchado? Se lo habrán dicho.
Pick the tense you want to learn. Its theory and its exercises open right below — switch whenever you like.
Pretérito perfecto (compuesto) · he hablado
A finished action that is still connected to now: it happened in a period that isn't over yet, it's part of your life experience so far, or its result still matters.
| Person | haber | hablar | comer | vivir |
|---|---|---|---|---|
| yo | he | he hablado | he comido | he vivido |
| tú | has | has hablado | has comido | has vivido |
| él / ella / usted | ha | ha hablado | ha comido | ha vivido |
| nosotros | hemos | hemos hablado | hemos comido | hemos vivido |
| vosotros | habéis | habéis hablado | habéis comido | habéis vivido |
| ellos / ellas / ustedes | han | han hablado | han comido | han vivido |
Irregular participles work the same: he hecho, has visto, ha dicho, hemos puesto, han vuelto.
With hoy, esta mañana, esta semana, este mes, este año: the time frame includes the present.
Esta semana he trabajado muchísimo. I've worked a lot this week.What you have (or haven't) done in your life up to now — with alguna vez, nunca, varias veces.
¿Alguna vez has probado el mole? — No, nunca lo he probado. Have you ever tried mole? — No, I've never tried it.Whether something has happened up to this moment, with ya, todavía no, aún no.
Ya he terminado el informe, pero todavía no lo he enviado. I've already finished the report, but I haven't sent it yet.Recent news or something whose effect you feel now.
¡He perdido mis llaves! No puedo entrar. I've lost my keys! I can't get in.Repeated actions or states that reach up to the present.
Últimamente hemos salido poco. We haven't been going out much lately.| Use | Present perfect · he hablado | Preterite · hablé |
|---|---|---|
| Time frame | Not finished: hoy, este año | Finished: ayer, el año pasado, en 2019 |
| Example | Este año he viajado mucho. | El año pasado viajé mucho. |
| Experience | He estado en Perú dos veces. | Estuve en Perú en 2018. |
| Result | Ha llegado tu paquete. | Tu paquete llegó el lunes. |
Mexico vs. Spain: in Spain the present perfect is used for anything that happened today (Hoy he desayunado tarde). In Mexico and most of Latin America people usually prefer the preterite for finished actions, even today ones: Hoy desayuné tarde. ¿Ya comiste? Both are correct. Mexicans still use the present perfect for experiences and for things that continue up to now: Nunca he ido a Europa. Últimamente he estado muy ocupado.
English trap: “I have lived here for five years” is not “he vivido aquí por cinco años” when you still live there. Spanish uses the present: Vivo aquí desde hace cinco años or Llevo cinco años viviendo aquí.
Write haber + the participle. Accents are optional.
1.Esta semana yo ___ (trabajar) mucho.
2.¿Tú ya ___ (comer)?
3.Mi hermana nunca ___ (viajar) en avión.
4.Este año nosotros ___ (aprender) muchas cosas.
5.¿Ustedes ___ (vivir) alguna vez en el extranjero?
6.Hoy los niños ___ (dormir) muy bien.
7.Todavía no ___ (yo, terminar) la tarea.
8.¿Usted ___ (estar) alguna vez en Oaxaca?
9.Últimamente nosotros ___ (salir) poco.
10.¿Vosotros ___ (probar) el mole?
11.Este mes Carlos ___ (leer) tres libros.
12.Hasta ahora mis padres no ___ (oír) la noticia.
All of these verbs have an irregular participle — check the flashcards if you need them.
1.¿Quién ___ (romper) la ventana?
2.Todavía no ___ (yo, hacer) la cama.
3.¿___ (tú, ver) la nueva película?
4.Mis abuelos ya ___ (volver) de su viaje.
5.Nosotros le ___ (escribir) una carta a Ana.
6.¿Qué te ___ (decir) el doctor?
7.¿Dónde ___ (tú, poner) mis llaves?
8.Esta mañana ___ (ellos, abrir) una tienda nueva en mi calle.
9.La científica ___ (descubrir) algo importante.
10.¿Ya ___ (ustedes, resolver) el problema?
Look at the time marker: unfinished period, experience or result → he hablado; finished time → hablé. (Follow the general rule — in Mexico you'll also hear the preterite in some of these.)
1.Ayer ___ al cine con mis amigos.
2.Desde que llegué a México ___ a mucha gente.
3.En 2019 ___ en Guadalajara.
4.Hasta ahora no ___ ningún problema.
5.La semana pasada Marta ___ un coche nuevo.
6.En los últimos meses ___ muchísimo.
7.Hace dos años ___ a Perú.
8.Nunca en mi vida ___ algo tan bonito.
9.El lunes pasado ___ muy tarde.
10.Últimamente ___ muy cansada.
Apply the three golden rules.
1.Which is correct?
2.Which is correct?
3.Which is correct?
4.Which is correct?
5.Which is correct?
6.Which is correct?
Pretérito pluscuamperfecto · había hablado
The past of the past: an action that was already finished before another action or moment in the past. It's English had + participle.
Cuando llegué a la estación, el tren ya había salido.
| Person | haber | hablar | comer | vivir |
|---|---|---|---|---|
| yo | había | había hablado | había comido | había vivido |
| tú | habías | habías hablado | habías comido | habías vivido |
| él / ella / usted | había | había hablado | había comido | había vivido |
| nosotros | habíamos | habíamos hablado | habíamos comido | habíamos vivido |
| vosotros | habíais | habíais hablado | habíais comido | habíais vivido |
| ellos / ellas / ustedes | habían | habían hablado | habían comido | habían vivido |
Había is the same for yo and él / ella / usted — add the subject if it isn't clear: Yo ya había comido.
Two past actions: the earlier one goes in the past perfect. Ya often appears.
Cuando llegamos, la fiesta ya había terminado. When we arrived, the party had already finished.A date or an age works as the reference point.
A los veinte años ya había vivido en tres países. By twenty I had already lived in three countries.To say something was new at that time — very common in stories.
Nunca había visto algo así. I had never seen anything like it.The reason behind a past situation.
Estaba agotada porque no había dormido. She was exhausted because she hadn't slept.A past or present perfect in direct speech becomes past perfect.
“He perdido el pasaporte.” → Me dijo que había perdido el pasaporte. “I've lost my passport.” → He told me he had lost his passport.| Sentence | What happened |
|---|---|
| Cuando llegué, la película empezó. | I arrived → then it started (it started as I arrived). |
| Cuando llegué, la película ya había empezado. | It started → then I arrived (I missed the beginning). |
If the actions simply happen in order (first… then…), use the preterite for both: Comimos y después dimos un paseo. Use the past perfect when you go back in time from a past point.
Write había (conjugated) + the participle.
1.Cuando llegué, la película ya ___ (empezar).
2.Antes de ese viaje nunca ___ (yo, probar) los chapulines.
3.Estaba cansada porque no ___ (dormir) bien.
4.Cuando llamaste, nosotros ya ___ (salir).
5.¿___ (tú, estar) en Mérida antes de 2020?
6.Me dijeron que el examen ___ (ser) muy difícil.
7.Los invitados ya ___ (llegar) cuando terminé de cocinar.
8.Antes de mudarse, Pedro nunca ___ (vivir) solo.
9.Cuando volvimos, alguien ya ___ (comer) el pastel.
10.Vosotros ya ___ (leer) el libro antes de ver la película.
11.Nunca ___ (yo, sentir) tanto frío.
12.Ella me contó que ___ (perder) su pasaporte.
Same irregular participles, now with había.
1.Cuando abrí la puerta, alguien ya ___ (romper) la ventana.
2.Nunca ___ (yo, ver) un paisaje así.
3.Ana ya ___ (hacer) la comida cuando llegamos.
4.Me di cuenta de que no me ___ (tú, decir) la verdad.
5.Cuando llegó la jefa, ya ___ (nosotros, escribir) el informe.
6.A las tres los niños ya ___ (volver) de la escuela.
7.Cuando llegué, ya ___ (ellos, poner) la mesa.
8.La tienda todavía no ___ (abrir) cuando pasamos.
Choose the past perfect only when the action happened before the other past moment.
1.Cuando llegué a la estación, el tren ya ___.
2.Ayer vi a Laura; no la ___ desde hacía años.
3.Cuando sonó el teléfono, ___ a contestar.
4.Antes de ese viaje, nunca ___ en avión.
5.Primero comimos y después ___ un paseo.
6.Cuando por fin encontré mis llaves, mi novio ya se ___.
7.No pude entrar porque ___ la llave en casa.
8.Me preguntó si ya ___ la película.
The first action goes in the past perfect.
1.Primero la clase empezó. Después llegué yo. → Cuando llegué, la clase ya ___.
2.Primero mis amigos cenaron. Después llamé yo. → Cuando llamé, mis amigos ya ___.
3.Primero perdí mi celular. Después me di cuenta. → Me di cuenta de que ___ mi celular.
4.Primero vendimos la casa. Después nos mudamos. → Cuando nos mudamos, ya ___ la casa.
5.Primero el concierto terminó. Después llegaste tú. → Cuando llegaste, el concierto ya ___.
6.Primero ella hizo las maletas. Después llegó el taxi. → Cuando llegó el taxi, ella ya ___ las maletas.
Futuro compuesto · habré hablado
Two jobs: an action that will be finished before a moment in the future (will have done), and a guess about the recent past (must have done, probably did).
Para el viernes habré terminado el proyecto.
| Person | haber | hablar | comer | vivir |
|---|---|---|---|---|
| yo | habré | habré hablado | habré comido | habré vivido |
| tú | habrás | habrás hablado | habrás comido | habrás vivido |
| él / ella / usted | habrá | habrá hablado | habrá comido | habrá vivido |
| nosotros | habremos | habremos hablado | habremos comido | habremos vivido |
| vosotros | habréis | habréis hablado | habréis comido | habréis vivido |
| ellos / ellas / ustedes | habrán | habrán hablado | habrán comido | habrán vivido |
Haber loses its e in the future: habré, not haberé — just like poder → podré and saber → sabré.
With para + time, antes de, a las…, dentro de, en + year.
Para las seis ya habré salido de la oficina. By six I'll have left the office.With cuando + present subjunctive for the later action.
Cuando llegues, ya habremos cenado. When you arrive, we'll have already had dinner.Instead of probablemente / seguramente + he hablado.
Ana no contesta. Habrá salido. Ana isn't answering. She must have gone out.In questions, it sounds like “I wonder…”.
¿Quién habrá roto el vaso? I wonder who broke the glass.| You think… | Certain | A guess |
|---|---|---|
| …about now | Ana está en casa. | Ana estará en casa. (future) |
| …about what has just happened | Ana ha salido. | Ana habrá salido. (future perfect) |
| …about a finished past | Eran las diez. | Serían las diez. (conditional) |
Future or future perfect? The simple future is the action itself (Mañana terminaré = I'll finish tomorrow). The future perfect looks back from a future point: by then it's already done (Mañana a esta hora ya habré terminado).
Write habré (conjugated) + the participle.
1.Para el viernes ___ (yo, terminar) el proyecto.
2.Cuando llegues, nosotros ya ___ (cenar).
3.En diciembre ___ (tú, aprender) mucho español.
4.A las diez la película ya ___ (empezar).
5.Dentro de un año mis padres se ___ (jubilar).
6.Para 2030 ___ (ellos, construir) el puente nuevo.
7.¿___ (ustedes, llegar) antes de las ocho?
8.Mañana a esta hora ya ___ (yo, presentar) el examen.
9.Para el lunes ya ___ (vosotros, leer) el capítulo.
10.No te preocupes, Ana ya ___ (recibir) el mensaje.
11.Mis vecinos no contestan; ___ (salir) de viaje.
12.¿Dónde está mi celular? Lo ___ (tú, dejar) en el coche.
What does each sentence express?
1.Habrá salido; no contesta.
2.Para las seis habré terminado.
3.Ya habrán llegado a casa, ¿no?
4.En junio habremos ahorrado suficiente dinero.
5.¿Quién habrá roto el vaso?
6.Cuando vuelvas, habré limpiado todo.
7.Se habrá quedado dormido otra vez.
8.Dentro de diez años habrás visto medio mundo.
Is it the action itself, or something already done by then (or a guess about the past)?
1.Mañana ___ a mis abuelos.
2.Para cuando llegues, ya ___ la cena.
3.¿Qué hora es? — No sé, ___ las cinco.
4.Tienen los ojos rojos; ___ toda la noche.
5.El año que viene ___ a Japón.
6.A finales de mes ya ___ todo el dinero.
7.El suelo está mojado; ___ por la noche.
8.Esta noche ___ una película en casa.
Replace seguramente / probablemente + he hablado with the future perfect.
1.Seguramente Ana ha olvidado la cita. → Ana ___ la cita.
2.Probablemente los niños ya se han dormido. → Los niños ya se ___.
3.Seguro que has trabajado mucho hoy. → ___ mucho hoy.
4.Probablemente el paquete ya ha llegado. → El paquete ya ___.
5.Seguramente han perdido el autobús. → ___ el autobús.
6.Probablemente Luis ha hecho la reservación. → Luis ___ la reservación.
Book a class with Ángel and practise the perfect tenses in real conversation — telling stories, sharing experiences and making plans.