Quick answer
he hablado · has comido
haber plus the participle. In Spain it covers today, this week and anything still felt as current.
haber plus participle
| Person | haber |
|---|---|
| yo | he |
| tú | has |
| él / ella / usted | ha |
| nosotros | hemos |
| vosotros | habéis |
| ellos / ustedes | han |
The participle is -ado for -ar verbs and -ido for -er and -ir verbs. It never agrees with anything here.
Irregular participles
A short list carries most of the weight.
| Verb | Participle |
|---|---|
| hacer | hecho |
| ver | visto |
| escribir | escrito |
| decir | dicho |
| poner | puesto |
| volver | vuelto |
| abrir | abierto |
| romper | roto |
When to use it
In Spain, for a period of time that has not closed: hoy, esta semana, este año, and with ya, todavía no, nunca, alguna vez.
In most of Latin America the simple past would be used in those same sentences: fui al médico. Both are correct Spanish.
Nothing comes between
haber and the participle are welded together. Pronouns and negatives go in front of haber.
Memory trick
Is the time frame still open? Then Spain says he hecho. Once the period is closed — ayer, en 2019 — you need the preterite.
Typical mistakes
He escribido un correo.
He escrito un correo.
Escribir has an irregular participle. The regular-looking form does not exist.
He no comido.
No he comido.
The negation goes in front of haber, never between the two parts.
Ayer he ido al cine.
Ayer fui al cine.
Ayer closes the time frame, so the preterite is required.
Check yourself
¿___ visto la película?