How do you form the present perfect tense in Spanish?

  • Google+ icon
  • LinkedIn icon
  • 806 views

The present perfect tense is really useful and needn't worry you! In English when we say things like 'I have gone' or 'We have arrived', this is the present perfect tense. It is used to describe an action that happened at an unspecified time in the past. In Spanish we form this using the verb 'haber', which corresponds loosely with the English verb 'to have' in the sense of 'He has been.' See below the various forms of haber:

Yo - he

Él/Ella - ha

Tú - has

Nosotros - hemos

Ellos/Ellas - han

Now, once you have your 'haber' form, you need your past participle. The past participle is basically the 'been', 'gone', or 'arrived' part of the sentence in English. For example, in the phrase 'I have arrived', 'arrived' is the past participle.

In Spanish, forming these past participles for regular verbs is really easy. For the -ar verbs, simply cut off the final '-r', and add '-do'. For example, using the verb 'comprar' (to buy), 'I have bought' would be: 'He comprado.'

For the -er/-ir verbs, simply take off the final -er/-ir and add '-ido'. For example, using the verb 'vender' (to sell), 'We have bought' would be: 'Hemos vendido.' Similarly, using the -ir verb 'venir' (to come), 'They have come' would be: 'Han venido.'

And that's it! Simple! 

Unfortunately, there are some irregular verbs that don't quite follow this rule, but you will learn these soon enough!

Below are a couple of common irregular past participles to get you started:

Hacer (to do) - hecho

Decir (to say/to tell) - dicho

Describir (to describe) - descrito

Escribir (to write) - escrito

Nathaniel A. GCSE Spanish tutor

About the author

is an online GCSE Spanish tutor with MyTutor studying at University College London University

Still stuck? Get one-to-one help from a personally interviewed subject specialist.

95% of our customers rate us

Browse tutors

We use cookies to improve your site experience. By continuing to use this website, we'll assume that you're OK with this. Dismiss

mtw:mercury1:status:ok