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.
For a more serious, large-scale, and cross-linguistic look at spatial metaphors in time expressions, see Martin Haspelmath, "From Space to Time: Temporal Adverbials in the World’s Languages", 1997. But I don't think that he takes up the question that we had fun with at (not on or in) dinner.