generally automating the individual actions to change a date is annoying. If I can short cut it by directly setting a value through either script injection or an object property, I'd probably go with that.
For web object, there's usually a hidden form field that the calendar sets. For native windows UI widgets, there is usually some sort of properties in the widget itself. If it's a custom UI, you may need to write a custom object property, or ask the developer to add an MSAA hook for setting the date.