I have planned many projects where tasks were permitted to be worked on over weekends. It is just a matter of setting the correct working time for the resources assigned to the task. If the resource(s) assigned are permitted to work on Saturday and Sunday then any tasks to which they are assigned will automatically be scheduled on those days.
How you set the working time for resources differs depending on which version of Project you are using. It changed slightly from MS-P 2010 onwards.
In both versions you go to the Resource Sheet, select the resource you want to modify and double-click on their calendar (right hand side of sheet). A common source of confusion is that the calendar is named the same as the Project's calendar, but when selected from the Resource Sheet is specific and personal to that user alone.
Having opened the resource's calendar's Change Working Time dialog it now differs depending on verison. In 2010 onward you go to the Working Week tab and enter a new [default] entry, then select the "Details" button and ensure you have selected all days on which the user is working. Accept the changes and ensure the dates are correct for the period of time the resource is working the new hours. You can add as many rows describing non-standard hours as you want...
On prior versions of MS-P, if I can remember correctly, you need to select Sat and Sun in the column headers of the calendar box and then click the radio button indicating Working Days or Non-Standard Working Days (in which case you need to manually enter the hours they work on the selected days).
Typically I have normal working resources, set up the usual way, and then specific weekend-working resources who work weekend shifts to get stuff done, but do not work normal weekdays. So I create two (or more) different resources, one with weekday working and one with weekend working. When I assign a weekend-working-only resource to a task MS-P will only schedule it to be worked on over the weekend. But you could easily mix and match within a single resource...
These kinds of changes can be done at any time during a project- If you suddenly realise you need to get something done over a weekend, just apply a resource to it that can work over the weekend and the task will be scheduled over a weekend. Changed your mind? Just allocate a different (non-weekend working) resource and the task will be scheduled for the working week (you'll have to recalcuate/levle the plan obviously, it won't just happen automatically)