Like many cisco products, there are several ways to get what your after done.
I could provide an example script too you but i feel every contact center admin should understand there script before uploading it too the server.
If you generate a script and upload it here... I would be happy to guide you through the process.
The options you have are as follows
1) Change the script the day of the scheduled half day. You would change the time of day step to match your operational hours. You will then revert the script back to the orignal script on non scheduled half days.
2) Create an if state (or a switch statment) that does a date check. The date can be a string within the script or read from am XML file (xml file is the typical way of doing it). If the dates match... then branch out to the half day hours.
I created holiday XML file and it worked this Columbus day however I do not know how to add half day in the holidays.xml file. Here is attached holiday xml and script. What if Thanksgiving eve 11/21/2012 is an half day and hours is 8:00 a.m. to 1 p.m., should i added into the holiday.xml such as like this?
Put in more parameters for your XML. Can you always be sure the holiday hours? I would do it like the following and have it test the date and the hour.
Make like an after hours boolean varible and run a loop to check each holiday against the date. If you get a match, then see if the current hour is equal or greater than the start time and less than the end hour. If you get a match then have it skip the during hours logic that you have. You could even go as far as adding like a wave="LaborDay.wav" to each of the entries and have it play a special wav for each holiday.