It is frustrating, especially with many chains going from day of cancellation to 48 hours prior. That said, you either have to have lots of backups (connections, zeds, etc) or wait until you get to your destination to book a place to stay. On a recent trip to YUL, I had a confirmed hotel in downtown but ended up flying in the night before and staying at an airport hotel.