Spanish grammar · interactive
Spanish Present Perfect Practice
He hablado, has visto, hemos hecho — one auxiliary, one participle, and a short list of irregulars. Drill it with instant feedback.
These Spanish present perfect exercises drill the tense you need for “I have done” sentences: the right form of haber, the right participle, and the word order that trips up English speakers. Answer in real sentences and get the rule with every answer.
The short version: the present perfect is a form of haber (he, has, ha, hemos, habéis, han) plus a past participle (-ado/-ido), nothing can come between the two, and the participle never changes — lo he visto, la he visto, los he visto.
Try the present perfect exercise
Choose the form that fits. You’ll see why after each answer.
Hoy mucho en la oficina.
I have worked a lot at the office today.
How it works
- 1
Read the sentence
A real Spanish sentence appears with the verb phrase blanked out.
- 2
Pick the form
Choose the right haber + participle combination. Instant right/wrong feedback.
- 3
Learn the why
Every answer explains the auxiliary, the participle, or the word order behind it.
What you’ll learn
- The full auxiliary: he, has, ha, hemos, habéis, han
- The irregular participles worth memorizing: hecho, visto, dicho, escrito, puesto, vuelto
- Why pronouns go before haber — lo he visto, never ‘he lo visto’
- Why the participle never agrees: la he visto, not ‘la he vista’
One frozen unit, not two words
The fastest way to get the Spanish present perfect right is to treat haber + participle as a single frozen unit. Unlike English (“I have never seen it”), Spanish lets nothing slide between the two words: adverbs go outside (nunca he visto, ya he comido) and object pronouns go before haber (lo he visto, se lo he dicho). If you build sentences around an unbreakable ‘he visto’ block, the word-order errors disappear on their own.
The participle side is equally rigid: after haber it is invariable, always ending in -o. La película la he visto, las cartas las he escrito — no agreement, ever. (The participle only agrees when it acts as an adjective with estar or ser: la puerta está abierta.) If you know French or Italian, this is the rule to consciously unlearn.
The irregular participles — and when to use the tense
Regular participles are mechanical: -ar verbs take -ado (hablado) and -er/-ir verbs take -ido (comido, vivido). The irregulars form a short high-frequency list: hecho (hacer), visto (ver), dicho (decir), escrito (escribir), puesto (poner), vuelto (volver), plus abierto, roto, and muerto. They’re so common in everyday speech that inventing ‘hacido’ or ‘escribido’ is the single loudest learner giveaway — drill them until the wrong forms sound wrong.
As for when to use it: peninsular Spanish uses the present perfect for anything connected to the present — today, this week, ever/never (hoy he comido tarde). Much of Latin America prefers the simple preterite for the same situations (hoy comí tarde). Both are correct; the forms are identical everywhere, so master the mechanics here and adjust the frequency of use to the region you speak with.
Quick reference — irregular participles
| Infinitive | Participle |
|---|---|
| hacer | hecho (he hecho — I have done/made) |
| ver | visto (has visto — you have seen) |
| decir | dicho (ha dicho — he/she has said) |
| escribir | escrito (hemos escrito — we have written) |
| poner / volver | puesto / vuelto (han puesto, han vuelto) |
Frequently asked questions
How do you form the present perfect in Spanish?
Conjugate haber in the present — he, has, ha, hemos, habéis, han — and add the past participle: -ado for -ar verbs (hablado), -ido for -er/-ir verbs (comido, vivido). ‘He hablado’ = I have spoken.
What are the irregular past participles in Spanish?
The core list: hecho (hacer), visto (ver), dicho (decir), escrito (escribir), puesto (poner), vuelto (volver), abierto (abrir), roto (romper), and muerto (morir). Forms like ‘hacido’ or ‘escribido’ don’t exist.
Can I put words between he and the participle, like ‘he siempre comido’?
No — haber and the participle are inseparable in Spanish. Adverbs go outside (siempre he comido) and object pronouns go before haber (lo he visto).
Why is it ‘la he visto’ and not ‘la he vista’?
After haber the participle is invariable — it always ends in -o regardless of gender or number: la he visto, las he visto. It only agrees when used as an adjective, as in ‘la puerta está abierta’.
Make the present perfect automatic
HablaCore drills the Spanish present perfect in real AI-generated sentences with instant feedback on every answer. The participles you fumble come back until hecho and visto are reflexes.
Practice the present perfect in real sentences