As 'Out of Office' reply was not accepted - how about implementing functionality which appends a message after the user display name?
A simple on / off setting plus three input fields (start date, end date, message) are all that are required. If setting Out of Office =- true, then set display name = first + last + "(" + message + ": " + start date + "to " + end date + ".")
Does not need to check dates etc - just concatenate the contents of the fields if the setting is on.