Use at when your time or place is a single point you could mark on a map or clock: I start working at 9 am.
Broader spaces take in (in the park), and days take on (on Monday).
Clock times: picture the moment as a single point on a clock. If you can, use at: The movie starts at 7. I start working at 9 am. If you name a part of the day instead, that's usually in: I watched a drama in the morning. Night is the exception: most day parts like morning and afternoon take in, but night takes at, as in I sleep at night.
Holidays without the word day: at fits Christmas, Easter and New Year when the name doesn't contain day. We're visiting my parents at Christmas. But if you name the day itself, switch to on: on Christmas Day, on New Year's Day.
Boundary check for holidays: before you choose, look at the holiday's name. If the word day appears in it, the day rule takes over and at is wrong: at Christmas but on Christmas Day.
Places you treat as a point: use at when the spot is specific, like a numbered address, an intersection or a counter. I live at 28, Main Street. I had to ask for a refund at the store. You're locating a point, not describing a space.
Streets versus full addresses: a bare street name takes on, so you'd say on Main Street, while the numbered address is a single point and takes at: at 28, Main Street. Check whether you've given a number.
Buildings and events: if someone asks where you'll be, at marks the place or event you attend. I'm at the dentist's office. She's at the bus stop. Note that we say at school and at college but in class, never at class.