If I want a weekend off, I usually request it. My opinion on requesting time off is that if I put in a request, it's really just me telling my etl "hey, I have an engagement that I consider to be more important than work on that day. I think you should plan accordingly." If they don't approve the request, I try to give the shift away, but I'm willing to take the call out on most of those occasions.
If something comes up last minute, I just say don't do it and I go to work, unless it's a morning shift. I don't even try to put up mids and closing weekend shifts for swap. No one wants it. I've gotten rid of some 8am weekend shifts, though.