Quick Answer

Use the imperfect to describe ongoing or background weather (hacía frío, estaba nublado, llovía). Use the preterite for a time-bounded weather event or a sudden change (llovió dos horas, hubo tormenta, se puso a llover).

Why this choice matters

In Spanish storytelling and reporting, weather sets the scene. Choosing between the imperfect and the preterite changes your message: are you painting an ongoing background or reporting a completed event/change? Getting this right makes your Spanish sound natural and precise.

The 10-Second Decision Guide

Ask yourself… Choose Example
Was the weather ongoing background or habitual? Imperfect Hacía frío y estaba nublado.
Was it a finished, time-bounded weather event? Preterite Llovió dos horas; hubo una tormenta.
Did a change occur at a specific moment? Preterite (change verbs) Se puso a llover; empezó a nevar.
Is it general climate or childhood habits? Imperfect Los inviernos eran más fríos.

Core Patterns for Weather Verbs

1) Hacer + weather noun

  • Imperfect (background): Hacía viento toda la tarde.
  • Preterite (bounded day/event): Ayer hizo mucho calor.

2) Estar + condition (nublado, despejado, húmedo)

  • Imperfect: El cielo estaba nublado cuando salimos.
  • Preterite (finished interval): El cielo estuvo despejado de 3 a 5.

3) Haber (hay → había / hubo)

  • Había = background existence: Había niebla en la carretera.
  • Hubo = incident/event: Hubo una tormenta anoche.

4) Weather verbs: llover, nevar, granizar

  • Imperfect (ongoing): Llovía cuando llegamos.
  • Preterite (bounded): Nevó el 12 de enero.

5) Change-of-state verbs (often preterite)

  • Empezó a llover; paró de llover; se puso nublado; amaneció despejado.

Minimal Pairs that Clarify Meaning

  • Imperfect (background): Hacía frío cuando salimos de casa.
    Preterite (event): Ayer hizo frío todo el día.
  • Imperfect: El cielo estaba nublado mientras conducíamos.
    Preterite: El cielo estuvo nublado por tres horas.
  • Imperfect: Había niebla en el valle.
    Preterite: Hubo una tormenta eléctrica a medianoche.
  • Imperfect: Llovía cuando empezó el partido.
    Preterite: Llovió del mediodía a las dos.
  • Change (preterite): De repente, se puso a nevar y paró una hora después.

Time Phrases that Tip the Scale

Often → Imperfect

  • siempre, a menudo, normalmente, en general
  • mientras, cada invierno/verano
  • de niño/a, de pequeño/a

Often → Preterite

  • ayer, anoche, el lunes pasado
  • a las 3, por dos horas, de 3 a 5
  • de repente, en ese momento

Narration: Mixing Imperfect & Preterite

Imperfect paints the scene; preterite moves the plot:

Hacía viento y estaba nublado (escena). De repente, empezó a llover y la gente corrió a refugiarse (acciones).

Common Mistakes to Avoid

  • Había vs. hubo: Había = background condition; hubo = incident/event.
  • Overusing ser for weather: Prefer estar (estaba nublado), hacer (hacía frío), or weather verbs (llovía).
  • Forgetting change triggers preterite: se puso, empezó, paró usually take the preterite.

Practice: 12 Quick Exercises

Choose imperfect or preterite. (Answers below.)

  1. Ayer ____ (hacer) mucho calor.
  2. Cuando salimos, ____ (estar) nublado.
  3. De repente ____ (empezar) a llover.
  4. Durante horas ____ (llover) sin parar.
  5. El sábado ____ (haber) una tormenta fuerte.
  6. Siempre en julio ____ (hacer) viento por las tardes.
  7. A las 3 ____ (parar) de llover.
  8. Mientras conducíamos, ____ (haber) niebla.
  9. El cielo ____ (estar) despejado de 3 a 5.
  10. De niño, los inviernos ____ (ser) más fríos.
  11. El 12 de enero ____ (nevar).
  12. Generalmente ____ (llover) por la madrugada en esa zona.
Answer key
  1. hizo (preterite)
  2. estaba (imperfect)
  3. empezó (preterite)
  4. llovía (imperfect)
  5. hubo (preterite)
  6. hacía (imperfect)
  7. paró (preterite)
  8. había (imperfect)
  9. estuvo (preterite)
  10. eran (imperfect)
  11. nevó (preterite)
  12. llovía (imperfect)

How to Choose: A 3-Step Flow

  1. Identify the role of weather: background scene → likely imperfect.
  2. Check time-bounding: specific start/end or duration → preterite.
  3. Spot changes: empezó / se puso / paró → preterite.

FAQ

Is weather condition in the past preterite or imperfect?

Usually imperfect for background (hacía frío, estaba nublado). Use preterite for events/changes (hubo tormenta, se puso a llover).

Había vs. hubo for weather?

Había describes background existence (Había niebla). Hubo reports an incident/event (Hubo una tormenta anoche).

Estaba vs. estuvo nublado?

Estaba = scene/ongoing; estuvo = finished interval (por ejemplo, de 3 a 5).

Can I use preterite with hacer + weather?

Yes, to report a bounded day/event: Ayer hizo calor. For background, use imperfect: hacía calor.

Pocket Cheat-Sheet

  • Background/habitual → Imperfect: hacía, estaba, había, llovía, nevaba
  • Event/change → Preterite: hizo, estuvo (de X a Y), hubo, llovió, nevó, se puso, empezó, paró
  • General climate/habits: imperfect (los veranos eran secos)

Conclusion

Think like a storyteller: use the imperfect to paint the weather as a backdrop and the preterite to mark events or changes. With these patterns, minimal pairs, and the 3-step flow, choosing between them becomes quick and intuitive.