"In school" vs "at school"
I sometimes get confused whether to use in or at. For example,
Children were not at school yesterday, because yesterday was a holiday.
Children were not in school yesterday, because yesterday was a holiday.
Is there a rule of thumb to not confuse in and at?
Solution 1:
Not really, 'in school' is perhaps more common American English while 'at school' is more British but both are equally 'correct'. Similarly an American would probably say 'in college' while a Brit would say 'at university'.
In tends to be used for institutions, so you are 'in hospital' rather than 'at hospital' but 'at home' not 'in home' - although you might be put 'in a home'
It's just one of those things!
edit: there is perhaps a slight subtle difference that 'in school' means they attend school - as opposed to having finished school, while 'at school' means they are there now.
So "are your children in school" = are they under 16 or 18 ?
But "are your children at school" = are they at school today or are they at home.
(but that's from a BE perspective)
Solution 2:
Children who are at school are on the school grounds.
Children who are in school are in their classrooms.
(At least, those are the initial images that come to mind when I hear those two prepositions, and try to differentiate between them – although that differentiation is more forced than the norm).
In this case, either one will work just fine, because children who are at school (on the school grounds) are also, by default, in school (in their classrooms). On a holiday, they are neither in school nor at school, so you can use either preposition without any loss of meaning.
The one exception may be if the football team had a Saturday practice. In that case, I might say that David was at the school, but not in school – but that is a rare circumstance. Normally, either word works fine for the examples you provided.
As far as other diffentiations go:
I may be at work, but I'm never in work – unless I'm lost in my work.
I may be at home, but I'm never in home – only in my house.
I might speak in jest, but I would never speak at jest.
I might be at the restaurant, but I could be in the restaurant. At the restaurant would include being in the parking lot, but I probably wouldn't be at the parking lot – unless we were meeting at the parking lot.
Maybe it just takes a little practice. I'm reminded of this quip my father once told me:
The worms were eating in earnest. Poor Ernest.
Solution 3:
I've found the following answer in my high-school English grammar for Italian students (based on BE):
Some nouns such as "school", "restaurant", "bank", "theatre", "swimming pool", "café", etc. require either at or in, depending on whether you consider the place for its function or its material space.
"Jim is not here, he's at school." VS "There are 50 classrooms in the school."
"Was Susan at the swimming pool with you?" VS "Is John already in the swimming pool?"
"They are having a snack at a café." VS "She was sitting in a café."
Solution 4:
I think another distinction to add here, just because nobody seems to have mentioned it, is that the word "school" has different meanings in AE and BE. In the US, if somebody is "still in school" that really just means (s)he is studying somewhere, maybe in high school, maybe in medical school, who knows. In my understanding, BE speakers use "school" to mean secondary school, never college/university.