1. I would use 'on' because a weekend is two days (or more). 'At' is more particular, for a smaller place or shorter time, whereas on/in are used for longer durations or larger spaces. "Let's eat at an Italian restaurant at 9pm" against "Let's eat in downtown on Friday". Going by this logic, 'on' should be used. More @Wikipedia
Hover over any link to get a description of the article. Please note that search keywords are sometimes hidden within the full article and don't appear in the description or title.