Skip to content
SLAYLANGUAGE SCHOOL
Account

Spanish grammar · Level A2

Pretérito perfecto: he hablado, has visto

The pretérito perfecto is a past tense linked to the present: the action happened in a period that isn’t over (hoy, esta semana, este año), or the experience itself matters (¿Has estado en México?). It’s haber in the present + the participle: he hablado, has comido.

How to form the pretérito perfecto

Haber in the present + participle. The participle never changes: he comido, hemos comido, ellas han comido. Nothing goes between haber and the participle — pronouns and no come before haber: No lo he visto.

Pretérito perfecto
Personhaberhablarcomervivir
yohehabladocomidovivido
túhashabladocomidovivido
él / ella / ustedhahabladocomidovivido
nosotroshemoshabladocomidovivido
vosotroshabéishabladocomidovivido
ellos / ustedeshanhabladocomidovivido

Irregular participles

There aren’t many, but they’re very common — learn them now: hacer → hecho, ver → visto, decir → dicho, escribir → escrito, poner → puesto, volver → vuelto, abrir → abierto, romper → roto, morir → muerto, descubrir → descubierto.

  • ¿Qué has hecho hoy?What have you done today?
  • Nunca he visto el mar.I’ve never seen the sea.
  • Alguien ha roto la ventana.Someone has broken the window.

When to use the pretérito perfecto

1. An action in a period that’s still going on: hoy, esta mañana, esta semana, este mes, este año. 2. Life experience with no exact time: alguna vez, nunca, muchas veces. 3. Recent actions with a result now: ya (already), todavía no (not yet), acabar de.

  • Esta semana he trabajado mucho.I’ve worked a lot this week.
  • ¿Has estado alguna vez en Barcelona?Have you ever been to Barcelona?
  • Todavía no he terminado.I haven’t finished yet.

Tip: If the sentence has ayer, el año pasado, en 2020, hace dos días, use the pretérito indefinido instead: Ayer comí paella.

Spain and Latin America

In Spain the perfecto is used constantly — for anything that happened today: Esta mañana me he levantado tarde. In most of Latin America such sentences usually take the indefinido: Esta mañana me levanté tarde. Both are correct.

Common mistakes

The mistakes people make most often — and the right way.

  • Wrong: He hacido los deberes.

    Right: He hecho los deberes.

    Hacer has the irregular participle hecho.

  • Wrong: Ayer he visto a Juan.

    Right: Ayer vi a Juan.

    Ayer is a finished period: indefinido.

  • Wrong: He lo visto.

    Right: Lo he visto.

    The pronoun goes before haber.

  • Wrong: Ella ha comida.

    Right: Ella ha comido.

    The participle with haber doesn’t change.

  • Wrong: Hemos escribido.

    Right: Hemos escrito.

    Escribir → escrito.

Pretérito perfecto: he hablado

Quiz

10 questions: choose the right option — the explanation appears straight away.

  1. Question 1

    Hoy _____ trabajado mucho.

  2. Question 2

    ¿_____ estado alguna vez en México?

  3. Question 3

    Esta semana hemos _____ mucho.

  4. Question 4

    ¿Qué has _____ hoy?

  5. Question 5

    Nunca he _____ esa película.

  6. Question 6

    Mis padres _____ vuelto de vacaciones.

  7. Question 7

    Todavía no _____ escrito el informe.

  8. Question 8

    ¿Ya _____ comido, chicos?

  9. Question 9

    ¿Dónde has _____ las llaves?

  10. Question 10

    Esta mañana _____ levantado tarde.

Correct: 0 of 10

FAQ

Didn’t find your answer? Send us a request — we’ll tell you everything.

How is the perfecto different from the indefinido?

The perfecto is for an unfinished period (hoy, esta semana) or experience (nunca, alguna vez). The indefinido is for a finished past with a specific time (ayer, el lunes, en 2019). Hoy he visto a Ana / Ayer vi a Ana.

Is it like the English present perfect?

It’s built the same way (have + participle = haber + participio) but used more widely: in Spain “this morning I got up” is also perfecto. But “I have lived here for two years” is Llevo dos años viviendo aquí or Vivo aquí desde hace dos años.

Can I say “he acabado de…”?

“Have just” in Spanish is acabar de + infinitive in the present: Acabo de llegar — I’ve just arrived. “He acabado de llegar” sounds unnatural.

Next step

Keep learning with a mini-course

Short online courses by Slay School teachers: a 15-minute lesson a day with audio, exercises and dialogues, and the words you forget come back on their own.

  • Day 1 is free
  • 15 minutes a day, at your own pace
  • Every word has audio
  • Lifetime access once paid

All you need to start is an email or a Google account.