When it comes to the difference between ser and estar, most students have been given the explanation that ser refers to things that are permanent or lasting, and estar to things that are transitory or short-lived. While sometimes this rule works, and in a general sense it hints at the fundamental distinction between the two verbs, in other cases it can be totally misleading. It suffices to remember that “I'm dead” in Spanish is “Estoy muerto”, and what is more permanent than death?!
A better clue, with regard to living beings, is to envisage the opposition between ser and estar as a matter of Identity or Condition, respectively. When I'm talking about myself and I use ser I'm refering to the traits that I believe make me who I am, the characteristics that conform to my persona.
“Soy mexicano. Soy profesor de español. Soy un poco tímido. Soy un buen amigo. Soy divertido.”
When I use estar I'm speaking about states, about things that are ocurring to me in this particular moment, situations that I'm passing through but do not define me.
“Estoy enojado. Estoy enfermo. Estoy desempleado. Estoy feliz.”
I might have been sick for a few days, but that's not an attribute of my identity, it's just a phase!
Also notice how the meaning of a sentence can change from this perspective.“Estoy feliz” is a mood, it will pass, it is my current state of mind. But “Soy feliz” is a completely different assertion, it means that I am a happy person, that's who I am, that’s what defines me. [Keep in mind that in some cases with ser you will need an indeterminate article un/una (soy un loco, soy un enfermo), that's because those adjectives (estoy loco, estoy enfermo) have become nouns, objects and not characteristics.]
Whether something pertains to my identity or not is not a matter of permanence. I can identify as a teacher today, but suppose tomorrow I switch careers and pursue my dream of living on a farm. Then I will say “Soy granjero”. It's not lastingness in time that's important, but the identification aim when we speak.
We can also reveal ourselves and show how we really feel about our professions: “Soy profesor” means that I identify with my work, it's a career, a path that I'm taking. “Estoy de profesor” or even “Estoy dando clases” means that what I do for a living it's not part of who I am, I don't identify with it, it's just what I currently do while I wait for something better to occur. [In this sentences the de is mandatory: “Estoy de mesero”, “Estoy de asistente”.]
Likewise when we talk about other people:
“Vince es un gran estudiante, pero está un poco distraído hoy”. Vince is normally a great student, but today he's a bit off. The first is his identity, the second a condition.
In some sentences this distinction is a bit blurred. When native Spanish-speakers say “está guapo” or “es guapo” we are virtually expressing the same thing, but even there a slight difference survives. When we say that someone “es guapo” we are pointing to a definition of this person, this person is handsome. When we say “está guapo”, while it could also mean that this person is handsome, we could actually only be saying that this person looks good today or for the time being (or we could be in a philosophical mood and be stating the inescapable process of corruption in all organic matter, the forlorn rags of growing old, carpe diem, etc. “He looks handsome today but just give it a couple decades”). In the first case, “es guapo”, we are speaking of beauty as an attribute, in the second, “está guapo”, as a state, as a condition.
Time and Space with ser and estar
The distinction exposed above applies mostly when we're speaking about living beings (persons but also animals, or even plants: “La nochebuena es muy bonita, pero la mía está seca”). For other uses of ser and estar keep in mind the following:
Ser is used in most sentences involving time: the hour, the day, the month, the year, etc.
“Son las ocho de la tarde”* “Es medianoche” “Hoy es lunes” “Es diciembre” “Es 2020”.
[*The hours are given in plural, except 1 o'clock.]
But there's a certain way of building the sentence that uses estar instead:
“Hoy estamos a lunes” “Estamos a diciembre”.
Notice how the person of the verb is us. In relation to the Identity vs Condition idea, this means that time is a condition that we are going through. The subject in these sentences is not time, which is the case with ser. In these sentences we become the subject, experiencing the passing of time.
When we give the location of something in space we use estar.
“Estoy en mi casa” “Mi casa está en la Ciudad de México” “México está en América Latina”.
BUT when it is an event, such as a concert, a meeting or a party, we use ser.
“¿Dónde va a ser el concierto?” “Es en el Auditorio Nacional”.
“Te invito a mi cumpleaños, será en mi casa”.
“La junta de maestros es en el aula 202”
Keep these notions in mind and you'll be able to solve the majority of cases involving ser and estar.
Do not hesitate to contact me if you have any doubts.