Prof. Mark Liberman (Language Log) writes:

Last night at dinner, several Americans and a Canadian got into a discussion with an Irishman and an Australian about weekends. Since all of the participants were linguists, the discussion centered on prepositions: Were we having dinner on a weekend in February or at a weekend in February? The North Americans voted for “on”, a choice that the Irishman found preposterous. “A weekend,” he observed, “is not a surface.”

But he was forced to admit that the appropriate usage is on Saturday, not at Saturday, and on Sunday, not at Sunday. “So,” countered one of the Americans, “Saturday is a surface, and Sunday is a surface, but their combination is not a surface?”

An attempt ensued to achieve descriptive accuracy. It was agreed that times within the day generally take at (at 9:30, at noon, at dawn, at dinner, at night), except for those that take in with the definite article (in the morning, in the evening); that days generally take on (on Monday, on her birthday, on Valentine’s Day), except maybe for at Christmas; that months and seasons and years and centuries generally take in (in December, in winter, in 1893, in the 15th century). And never mind the (generally relative) time-references that don’t take any preposition at all, like tomorrow, next week, three days ago.

This all hints at a coherent metaphor: hours and other short periods of time are places; days are surfaces; months and longer time periods are containers. But it seems that only North Americans apply this logic to weekends….

Indeed, a Google Ngrams search through American English books reports “on the weekend” far ahead, while the British English search reports “at the weekend” being dominant.

Russian, incidentally, uses “in” more consistently — “v chetyre chasa,” meaning “in 4 o’clock,” “v voskresen’ye,” meaning “in Sunday,” and “v fevral’e,” meaning “in February.” [UPDATE: As commenter Mkastraz points out, actually “v" here corresponds grammatically more to “into" than “in" — “v" can mean either “into" or “in," but here the case ending used with the preposition is the one that would be used with the “into" meaning (though semantically the meaning of “v voskresen’ye" feels more like “in Sunday" than “into Sunday"). Funny that I hadn’t noticed this; I use the phrases routinely, and correctly, but I’ve never reflected on how the grammatical case doesn’t match the most plausible semantic meaning.]

But prepositions aren’t usually used for things like in the afternoon (“dniom”), and “dniom” doesn’t even use the case ending that would be used with the preposition “in.” And doing something in the morning generally — or on Sundays generally — would be “on the mornings” (“po utram”) or “on Sundays,” but with “on” in the sense of “traveling on” (“po”) rather than “located on” (“na”), as Vinni Puh reminds us.