When to use the perfect tense versus the simple past (Perfecto vs Indefinido)

Take the fastest path to fluent Spanish
Note that this is a Europe focused lesson. Your active focus is Latin America.

European Spanish (Español peninsular) uses two different tenses to talk about past events in cases where in English we generally use one. Knowing whether to use El Pretérito Perfecto ("he ido") or El Pretérito Indefinido ("fui") can be tricky at first but it's actually pretty easy.

The rules are simple once you understand how we think about units of time: days, weeks, months and years.

perfecto-vs-indefinido-past-spanish

Detailed explanation

In English, we would use I went for all of these cases:

I went to the doctor today.
I went to the doctor yesterday.
I went to the doctor this week.
I went to the doctor last week.
I went to the doctor this month.

In Español peninsular, however, we choose either He ido or Fui according to when the action occurred relative to the "unit of time" referred to or implied (day, week, month, year):

He ido al médico hoy.

Fui al médico ayer.

He ido al médico esta semana.

Fui al médico la semana pasada.

He ido al médico este mes.

How to know when to use El Pretérito Perfecto or El Pretérito Indefinido

The choice of tense depends on whether the speaker is "still inside" the "unit of time" that's being used or implied:

Use El Pretérito Perfecto ("he ido") form when talking about the past:
- today, this week, this month, or this year

Use El Pretérito Indefinido ("fui") form when talking about the past:
- yesterday, last week, last month, or last year (or further back)

If we're expressing ourselves in blocks of days then "yesterday" is in the past relative to today and therefore requires "fui". If we're talking about exactly the same event but using the time block "this week," then that is still current because the event and the speaker are in the same time block, so the speaker uses "He ido". Easy!

Attention: the smallest block of time is one day when considering which tense to use.

Parts of the day, such as morning, afternoon, evening and night do not count as 'time blocks' for this purpose. For example, if it's now the afternoon, you still use "he ido" to say "I went" somewhere in the morning.

Note: when we talk about things that happened hours or minutes ago, you can use either tense:

Lo he visto/lo vi hace 2 minutos.
I saw him two minutes ago.

Lo he visto/ lo vi hace unas horas.
I saw him a few hours ago.

 

English is not so different

You might think this concept of time blocks determining choice of tense is strange at first, but in fact, in English we use the perfect tense with the very same time blocks (albeit with a different nuance; i.e., to introduce a new fact or express a sense of continued action).

These sentences sound right:

I’ve been to the doctor today… (and she said…)
I’ve been to the doctor this week/month/year… (twice/four times!)

But these sound strange:

I’ve been to the doctor yesterday.
I’ve been to the doctor last week/month/year…

They feel very strange because the time block is over. Spanish is the same: don't use El Pretérito Perfecto to talk about events in previous blocks of time. Use El Pretérito Indefinido instead.

Caution: novices in both languages mistakenly translate El Pretérito Perfecto into/from the English present perfect because they share the same form:
"I have [past participle]" is structurally the same as "(Yo) he + [past participle]"

While there are instances where this will work, in general this is a mistake and the English preterite is the appropriate choice.

Want to make sure your Spanish sounds confident? We’ll map your knowledge and give you free lessons to focus on your gaps and mistakes. Start your Brainmap today »

Learn more about these related Spanish grammar topics

Examples and resources

María José from AIL Madrid explains 'marcadores temporales con pretérito "indefinido" y "perfecto"'. (By the way, AIL is an excellent school and highly recommended if you want to learn Spanish in Madrid!)

Previous time block: use El Pretérito Indefinido


El 5 de agosto fue su cumpleaños.It was his birthday on August 5th.
Quedamos con Javier el otro día.We met up with Javier the other day.
Reservé la habitación hace dos días.I booked the room two days ago.
Fui al médico ayer.
trabajaste en nuestra empresa en 2007.You worked in our company in 2007.
El verano pasado entrené mucho para la maratón.Last summer I trained a lot for the marathon.
comiste muchos dulces ayer.You ate a lot of sweets yesterday.
El año pasado estudié economía.Last year I studied Economics.
Ellos eligieron el menú de la boda el viernes pasado.They chose the wedding menu last Friday.

Same time block: use El Pretérito Perfecto


Fui al médico la semana pasada.
He ido al médico hoy.
Ellos han estado muy enfermos en los últimos meses.They were ill over the last few months.
He ido al médico este mes.
Vosotros habéis viajado mucho este año.You travelled a lot this year.
Nosotros hemos planificado la estrategia en estos últimos días.We planned the strategy over the past few days.
Ellas han dormido mucho esta semana.They slept a lot this week.
Ellas han salido tarde de trabajar hoy.They left late from work today.
¿Qué has desayunado esta mañana?What did you have for breakfast this morning?
Hemos ido a pasear esta tarde.We went for a walk this afternoon.
He ido al médico esta semana.
Clever stuff happening!