Every German sentence needs a clearly written subject, even when there is no real ‘doer’ in the meaning — and that's exactly the situation when talking about weather. In some languages you can say the equivalent of ‘is raining’ or ‘is cold’ with no subject at all, because the verb ending alone carries enough information to form a complete sentence. German never allows a sentence without a written subject, so it uses a special placeholder pronoun known as the dummy subject or ‘weather es’: es.
This es doesn't refer to anything real in the world — it isn't ‘he’ or ‘she’ in the usual sense. It exists purely to fill the subject slot and keep the sentence grammatically correct. You'll find it in phrases like Es regnet (‘it's raining’), Es schneit (‘it's snowing’), Es ist kalt (‘it's cold’), Es ist 20 Grad (‘it's 20 degrees’).
In practice there are two patterns: a verb alone after es, such as regnet, schneit, or donnert, and es ist followed by an adjective, such as kalt, warm, sonnig, or bewölkt. In both cases es stays in place — usually at the start of the sentence, or right after the verb if the sentence opens with a time word like heute.
When talking about seasons, German uses the preposition im, short for in dem, before the season's name: im Sommer (‘in summer’), im Winter (‘in winter’). Season names in German are always masculine — der Sommer, der Winter — which is why they take im rather than in der or in das.
The most common mistake is dropping es altogether, since a learner's instinct — shaped by a language that allows subjectless sentences — is to treat the verb alone as enough, writing Regnet heute instead of Es regnet heute. This produces a sentence that sounds broken or confusing to a German ear, because unlike some languages, the German verb form itself does not implicitly carry information about who or what the subject is.