Back to blog
Spanish grammar for English speakers

Hacer for Weather and Time in Spanish: hace frío, hace calor, and hace 3 años

Hacer does two jobs no other Spanish verb can do: it describes the weather (hace frío, hace sol) and measures elapsed time (hace tres años que vivo aquí). Here is how both patterns work — and how to avoid the most common traps.

hacer weather time Spanish10 min readUpdated 2026-06-23

Quick takeaway

Ser describes identity. Estar describes state, location, or condition.

10 min read2026-06-23hace frío hace calor Spanish / hacer time expressions Spanish

You are standing in Madrid in January. Someone asks ¿Qué tiempo hace? — and your instinct is to say está... frío. But what Spanish speakers actually say is Hace mucho frío. The verb that does the weather in Spanish is hacer — and it surprises almost every learner.

Hacer holds two jobs that no other Spanish verb can do. First, it describes ambient weather: hace frío, hace calor, hace sol, hace viento. Second, it measures elapsed time: hace tres años que vivo aquí (I have been living here for three years) and llegué hace tres años (I arrived three years ago). Both uses are impersonal — the verb locks into the third-person singular and never changes to match a subject.

Two essential hacer patterns. WEATHER: hace frío / calor / sol / viento / buen tiempo / mal tiempo — the verb always stays hace, no agreement, no subject. TIME (two structures): hace + time + que + present tense = ongoing action for X time (Hace dos años que estudio español — I have been studying Spanish for two years); preterite + hace + time = completed event X time ago (Empecé hace dos años — I started two years ago).

This guide walks through both patterns completely: the vocabulary, the tense changes, the distinction from estar and hay, and the traps that catch learners who reach for the wrong verb. By the end, hace will be a reflex.

Part 1: Hacer for Weather

Weather expressions with hacer are impersonal — the verb is always third-person singular and has no explicit subject. The nearest English equivalent is 'it is' or 'it's' (as in 'It's cold'), but Spanish simply drops the 'it.' The verb never changes to match anything; what changes is the noun or adjective that follows. Hace frío, hace mucho frío, and hace un frío horrible all use the same hace.

  • Hace frío. (It's cold.)
  • Hace calor. (It's hot.)
  • Hace sol. (It's sunny.)
  • Hace viento. (It's windy.)
  • Hace buen tiempo. (The weather is good.)
  • Hace mal tiempo. (The weather is bad.)
  • Hace fresco. (It's cool / fresh.)
  • Hace mucho calor. / Hace un calor horrible. (It's very hot. / It's terribly hot.)
  • Hace un frío que pela. (It's bitterly cold. — colloquial intensifier)
Spanish expressionEnglish and notes
Hace frío / hace calorIt's cold / it's hot — the two most common weather expressions
Hace solIt's sunny — lit. 'it makes sun'
Hace vientoIt's windy — NOT está ventoso (rarely used)
Hace buen / mal tiempoThe weather is good / bad — overall assessment
Hace frescoIt's cool / fresh — mild, comfortable cold
Llueve / está lloviendoIt's raining — llover has its own verb, not hacer
Nieva / está nevandoIt's snowing — nevar has its own verb
Hay niebla / hay nubesIt's foggy / it's cloudy — phenomena use haber, not hacer

Negation and questions work exactly like any other verb: No hace frío hoy (It is not cold today), ¿Hace calor en Sevilla en agosto? (Is it hot in Seville in August?). The verb never inflects for weather — there is no agreement to worry about. You can intensify freely: hace muchísimo frío (it's absolutely freezing), hace un viento terrible (it's terribly windy).

Hacer vs Está vs Hay for Weather

Three verbs share the weather space in Spanish, and the line between them is worth knowing. Hacer covers felt sensations: the temperature of the air, whether the sun is out, the wind on your skin. Haber (as hay) covers visible phenomena you can observe rather than feel. Estar describes the temperature of a specific object, not the ambient air. And some weather events have dedicated verbs of their own.

  • HACER — felt weather sensations: hace frío (it's cold out), hace calor (it's hot out), hace sol (it's sunny), hace viento (it's windy), hace buen/mal tiempo (the weather is good/bad). Ask: 'How does it feel outside?'
  • HAY — visible weather phenomena: hay niebla (there is fog), hay nubes (there are clouds), hay tormenta (there is a storm), hay nieve en el suelo (there is snow on the ground). Ask: 'What can you see?'
  • ESTAR — temperature of a specific object: el agua está fría (the water is cold — that specific water), el café está caliente (the coffee is hot), la piscina está fría (the pool is cold). NOT the air temperature.
  • OWN VERBS — llueve/está lloviendo (it's raining), nieva/está nevando (it's snowing), truena (it's thundering), graniza (it's hailing) — these have their own conjugated verbs.

Hacer Across Tenses: Weather in the Past and Future

Because hace is an impersonal third-person form, tense changes are straightforward — only the ending shifts. The critical distinction is between hizo (preterite) and hacía (imperfect). Use hizo for weather as a completed fact at a defined past moment: Ayer hizo mucho frío (Yesterday it was very cold — the whole day is treated as a completed event). Use hacía for weather as background condition when something else was happening: Hacía sol cuando llegamos (The sun was shining when we arrived — ongoing backdrop, not completed fact).

Tense — formExample sentence
Present — haceHace frío. (It's cold.)
Preterite — hizoAyer hizo mucho viento. (Yesterday it was very windy.)
Imperfect — hacíaHacía sol cuando salimos. (The sun was shining when we left.)
Future — haráMañana hará calor en Sevilla. (Tomorrow it will be hot in Seville.)
Conditional — haríaSi viviera en Málaga, siempre haría sol. (If I lived in Málaga, it would always be sunny.)
Perfect — ha hechoHa hecho mucho frío esta semana. (It has been very cold this week.)

Part 2: Hacer to Express Time — Two Patterns

The two time patterns with hacer. Pattern A (ongoing): hace + [time] + que + [present tense]. The action started in the past and continues now. Hace dos años que vivo en Madrid. (I have been living in Madrid for two years — and I still do.) Pattern B (completed / 'ago'): [preterite] + hace + [time]. The action is finished. Llegué a Madrid hace dos años. (I arrived in Madrid two years ago.) The tense of the main verb — present vs preterite — is what tells them apart.

Pattern A: Ongoing Action — hace + time + que + present

This pattern corresponds to the English present perfect with 'for': 'I have been living here for three years,' 'She has been working here for six months.' Crucially, Spanish does NOT use the present perfect for this — it uses the simple present tense after the hace + time + que frame. The present tense is not a mistake; it is the required form because the action is still happening. Using the present perfect (he vivido) would suggest the action is over, not that it continues.

  • Hace tres años que vivo en Madrid. (I have been living in Madrid for three years — and I still do.)
  • Hace seis meses que trabajo en esta empresa. (I have been working at this company for six months.)
  • Hace diez minutos que espero. (I have been waiting for ten minutes.)
  • ¿Cuánto tiempo hace que estudias español? (How long have you been studying Spanish?)
  • Hace mucho tiempo que no te veo. (I haven't seen you for a long time.)
  • Hace veinte años que no nieva tanto en Madrid. (It hasn't snowed this much in Madrid for twenty years.)

Pattern B: Completed Event — preterite + hace + time

This pattern corresponds to the English 'ago': 'I moved here three years ago,' 'She called an hour ago.' The action is finished — it began and ended in the past. The main verb must be in the preterite (pretérito indefinido). Pattern B answers the question ¿Cuándo? (When did it happen?) while Pattern A answers ¿Cuánto tiempo llevas...? (How long have you been doing it?).

  • Llegué a Madrid hace tres años. (I arrived in Madrid three years ago.)
  • Empecé a estudiar español hace seis meses. (I started studying Spanish six months ago.)
  • Llamó hace diez minutos. (She called ten minutes ago.)
  • ¿Cuándo llegaste? — Llegué hace dos horas. (When did you arrive? — I arrived two hours ago.)
  • Lo vi hace mucho tiempo. (I saw him a long time ago.)
  • La empresa abrió hace cinco años. (The company opened five years ago.)
Pattern A — ongoing actionPattern B — completed event / ago
hace + time + que + presentpreterite + hace + time
Action started in past, still continues nowAction completed and finished in the past
English: present perfect with 'for'English: simple past + 'ago'
Hace dos años que vivo aquí.Llegué aquí hace dos años.
¿Cuánto tiempo hace que estudias?¿Cuándo empezaste? — Empecé hace dos años.
NOT with preterite: × Hace dos años que viví aquíNOT with present: × Vivo aquí hace dos años

Word Order: Moving hace to the Front or Using desde hace

Both patterns allow word order variation. In Pattern A, hace can stay at the front (Hace tres años que vivo aquí) or the present-tense clause can come first with desde hace replacing the que construction: Vivo en Madrid desde hace tres años. Both are correct and equally natural in speech. In Pattern B, hace can lead for emphasis: Hace tres años llegué a Madrid — but placing it after the preterite (Llegué hace tres años) is the more common and neutral word order.

  • Hace tres años que vivo aquí. = Vivo aquí desde hace tres años. (I have been living here for three years — both equally natural.)
  • Hace dos horas que espero. = Llevo dos horas esperando. (I have been waiting for two hours — llevar + gerund is a common alternative.)
  • Empezó hace un mes. (It started a month ago — Pattern B, hace at the end.)
  • Hace un mes que empezó. (It has been going on for a month — Pattern A, slight shift: still ongoing from speaker's point of view.)

Hacía: Past Duration with the Imperfect

When the ongoing action was happening at a past reference point — not up to now, but up to some moment in the past — use hacía (the imperfect of hacer) instead of hace. This is the past equivalent of Pattern A. The structure is hacía + [time] + que + [imperfect]. It corresponds to the English 'had been doing for' at a certain point in the past.

  • Hacía tres años que vivía en Madrid cuando conocí a mi mujer. (I had been living in Madrid for three years when I met my wife.)
  • Hacía una hora que esperaba cuando por fin llegó el tren. (I had been waiting for an hour when the train finally arrived.)
  • Hacía meses que no dormía bien antes de ir al médico. (I hadn't been sleeping well for months before I went to the doctor.)
  • ¿Cuánto tiempo hacía que estudiabas cuando empezaste a hablar con soltura? (How long had you been studying when you started to speak fluently?)

Four Common Mistakes

Mistake 1: Using 'está frío' for cold weather instead of 'hace frío'

Está frío is not wrong — but it means a specific thing is cold. Está frío el café (The coffee is cold). Está fría el agua (The water is cold). Está frío refers to the temperature of a specific object. Hace frío refers to the ambient air temperature — how cold it feels outside. If you step out of your house in January, say hace frío, not está frío. The mistake is applying the familiar estar + adjective pattern to weather in general.

Mistake 2: Mixing the two time patterns

Pattern A and Pattern B do not mean the same thing and cannot be swapped. Hace dos años que vivo aquí (Pattern A, present tense) = I still live here. Vine hace dos años (Pattern B, preterite) = I came two years ago — and I may or may not still be here. The critical error is using Pattern A with a preterite: ×Hace dos años que viví aquí sounds unnatural because Pattern A requires the present for an ongoing action. Equally, ×Vivo aquí hace dos años drops the que and scrambles the structure. Each pattern has a fixed tense.

Mistake 3: Confusing 'tengo calor' and 'hace calor'

Hace calor describes the weather — the ambient temperature outside. Tengo calor (tener idiom) describes a personal sensation — 'I feel hot.' These are not interchangeable. If you want to say the day is hot, use hace calor. If you want to say you personally feel hot, use tengo calor. A third level: está caliente refers to a hot object (el motor está caliente, el café está caliente). Three structures, three separate contexts. Using estoy caliente to mean 'I'm hot' is a register error with a completely different meaning — always use tengo calor for the sensation.

Mistake 4: Dropping 'que' in Pattern A

Pattern A requires the connector que: hace + time + que + present. Dropping que produces a phrase that feels truncated: ×Hace tres años vivo aquí — this misses the link between the time frame and the clause. The idiomatic form is Hace tres años que vivo aquí. The alternative that avoids que altogether is to use desde hace after the present-tense clause: Vivo en Madrid desde hace tres años. Both are correct; just don't drop que when hace comes first.

Practice: Hacer for Weather and Time

Practice 1

How do you say 'It was very sunny yesterday'?

Ayer hizo mucho sol.

Preterite hizo — a specific completed weather event in the past.

Practice 2

Translate: 'I have been studying Spanish for two years' (and I still am).

Hace dos años que estudio español. / Llevo dos años estudiando español.

Pattern A: hace + time + que + present tense. Llevar + gerund is an equally common alternative.

Practice 3

Fill in: ___ tres meses que no llueve. (It hasn't rained for three months.)

Hace tres meses que no llueve.

Pattern A — the dry spell is ongoing up to now.

Practice 4

How do you say 'She arrived three hours ago'?

Llegó hace tres horas.

Pattern B: preterite + hace + time.

Practice 5

Correct this sentence: 'Está mucho viento hoy.'

Hace mucho viento hoy.

Wind is always hace viento — never está viento.

Practice 6

Translate: 'When we got to the mountains, it had been snowing for hours.'

Cuando llegamos a la montaña, hacía horas que nevaba.

Hacía + time + que + imperfect — past ongoing duration before another past event.

Practice 7

How do you say 'I'm hot' (personal sensation) versus 'It's hot' (the weather)?

Tengo calor (personal sensation) vs Hace calor (the weather).

Tener for body sensations; hacer for ambient temperature.

Practice 8

How long has the café been open? It opened three years ago and is still open.

Hace tres años que el café está abierto. / El café abrió hace tres años.

Use Pattern A (still open, ongoing) for the first; Pattern B (when it opened) for the second.

Quick Summary

  • WEATHER with hacer: hace frío / calor / sol / viento / buen tiempo / mal tiempo / fresco. Always third-person singular, no agreement, no subject.
  • THREE weather verb zones: hacer = felt sensations (temperature, sun, wind); hay = visible phenomena (hay niebla, hay nubes, hay tormenta); llover/nevar = their own dedicated verbs.
  • TENSES for weather: hace (present) → hacía (imperfect, background condition) → hizo (preterite, completed past event) → hará (future).
  • TIME Pattern A: hace + time + que + present = ongoing action that continues now. Hace tres años que vivo aquí. Answer to: ¿Cuánto tiempo llevas...?
  • TIME Pattern B: preterite + hace + time = completed past event (ago). Llegué hace tres años. Answer to: ¿Cuándo...?
  • PAST DURATION: hacía + time + que + imperfect = had been doing X for Y time (before another past event). Hacía tres años que vivía aquí cuando la conocí.
  • KEY TRAPS: hace calor ≠ está caliente (object) ≠ tengo calor (personal sensation). Don't drop que in Pattern A. Don't use preterite in Pattern A or present in Pattern B.

Hacer is already in your vocabulary for 'to do' and 'to make' — these impersonal uses simply extend the same verb into weather and time. Weather expressions are formulaic enough to memorise as chunks: hace frío, hizo sol, hacía viento, hará buen tiempo. Time expressions take slightly more practice because the two patterns (ongoing vs completed) look similar but have strict tense requirements. The fastest route to fluency with both is drilling them in real context — the MuyVerbs quiz has exercises covering hacer weather phrases and hace + time structures as part of its grammar concept library. Full conjugation tables for hacer — including the irregular yo form hago, the preterite hice/hizo, and the future haré — are at /spanish-verbs/hacer-conjugation/.

FAQ: Ser vs estar
How do you say 'it's cold' in Spanish?

Hace frío. This is the standard impersonal weather expression — the verb hacer stays in the third-person singular (hace) with no explicit subject and no agreement. To intensify: hace mucho frío (it's very cold), hace un frío horrible (it's terribly cold). For the past: hacía frío (it was cold — imperfect, used as background condition) or hizo frío ayer (it was cold yesterday — preterite, completed event). For the future: mañana hará frío (tomorrow it will be cold).

What is the difference between 'hace frío' and 'está frío' in Spanish?

Hace frío describes the ambient air temperature — the weather, how cold it feels outside. It is impersonal: no specific subject, always hace. Está frío (or está fría) describes the temperature of a specific object: el agua está fría (the water is cold), la sopa está fría (the soup is cold). If you step outside in January and feel the cold air, say hace frío. If you touch a glass and it's cold, say está frío. The two are not interchangeable.

How do you use 'hace' to talk about time in Spanish?

Hacer has two time patterns. Pattern A (ongoing): hace + [amount of time] + que + [present tense] — for an action that started in the past and still continues: Hace dos años que vivo aquí (I have been living here for two years). Pattern B (completed, 'ago'): [preterite] + hace + [amount of time] — for a finished past event: Llegué hace dos años (I arrived two years ago). Pattern A uses the present tense; Pattern B uses the preterite. The tense of the main verb is what distinguishes them.

What is the difference between 'hace dos años que vivo aquí' and 'vine aquí hace dos años'?

These mean very different things. Hace dos años que vivo aquí (Pattern A, present tense) means 'I have been living here for two years' — the present tense vivo confirms the action is still ongoing right now. Vine aquí hace dos años (Pattern B, preterite) means 'I came here two years ago' — the preterite vine tells you the arrival is a completed past event. Pattern A answers 'how long have you been here?' (still there). Pattern B answers 'when did you come?' (past event, finished).

How do you say 'ago' in Spanish?

Use hace + [amount of time] placed after a preterite verb: Llegó hace tres horas (She arrived three hours ago), Lo compré hace una semana (I bought it a week ago), Empecé hace seis meses (I started six months ago). The word 'ago' in English is not a standalone word in Spanish — it is encoded in this hace construction. You can also move hace to the front for emphasis: Hace tres horas llegó is grammatically valid but slightly more formal.

Can you use 'hacía' for past time duration in Spanish?

Yes. Hacía is the imperfect of hacer and is used when the ongoing duration was measured up to a past reference point — the past equivalent of Pattern A. Structure: hacía + [time] + que + [imperfect]. Example: Hacía tres años que vivía en Madrid cuando conocí a mi mujer (I had been living in Madrid for three years when I met my wife). This corresponds to the English 'had been doing for.' Compare with hace + present (Pattern A), which measures duration up to the present moment.

Is it 'hace calor' or 'está caliente' for hot weather?

Hace calor for the weather — the ambient temperature, how hot it feels outside. Está caliente for a specific hot object: el café está caliente (the coffee is hot), el motor está caliente (the engine is hot). A third option is tengo calor for the personal sensation of feeling hot. The three structures are not interchangeable: weather → hace calor; hot object → está caliente; personal sensation → tengo calor. Using estoy caliente to mean 'I feel hot' is a register error — always use tengo calor for the personal sensation.

What does 'hace buen tiempo' mean and when do you use it?

Hace buen tiempo means 'the weather is good / it's nice weather.' Its opposite is hace mal tiempo (the weather is bad). These refer to overall weather quality rather than a specific sensation. Common in questions and answers: ¿Qué tiempo hace hoy? (What's the weather like today?) → Hace buen tiempo (It's nice). ¿Hace siempre buen tiempo en Valencia? (Is the weather always good in Valencia?) → Casi siempre hace sol (It's almost always sunny). The verb stays hace regardless of context — it never changes form in weather expressions.