If you agree to this, I would let the guest know that he can cancel but he needs to realize that the Airbnb fee is not refundable and that this is out of your control. You would have to figure out how much if any he would be refunded by Airbnb and then you would be able to reimburse him through the resolution center.
Another solution that does not involve any cancelation is to accept his 28 day booking, and then if he decides to leave early and you agree, then amend the end date to the new desired check out date. You can do this through the "Alter/Change" function and all you do is enter the new end date, and the new value of the booking and it will automatically refund the guest the amount you've indicated (by lowering the value of the new booking) and your calendar is now freed up for any potential booking of the unused dates. I use the Alter/Change function all the time - to change the number of guests, to increase the fee for some additional day or expense, to give a reduction after a booking is already ongoing, etc. It's super handy.
Yes, I would have to agree with @Maria-Lurdes0. I was going to suggest this but the "28 day" had me wondering about the long term rental aspect. The good way of doing it @Maria-Lurdes0's way is that if he cancelled he would have to pay the entire Airbnb fee and this way he will only pay the percentage of the altered date booking.
One other thing I would keep in mind @Anthony8 is that he is getting your monthly rate. You need to make sure that if he leaves early, you base it on your weekly rate which is not as much of a discount.