All of the information on contract expiration schedules is on the respective exchange's website.
Most contracts are rolled 1 week or so before First Notice Date or Last Trading Day, whichever comes first. Liquidity dries up as you get closer to expiry.