Ubercart how to provide expiry option for a product if its not in auction?
There is one for Drupal 6, but there does not appear to be a solution for Drupal 7.

The easiest way may be to use rules with an additional field in the products content type and set the product to be unpublished after the date (see https://groups.drupal.org/node/240678 for an example).

Another more complex way would be to make a module that runs on cron (hook_cron) loops through all the products (MySQL select * from uc_products for an example), add a new field to the products content type called expired, set it to a date (using the date module), upon looping through products get the entire node (including this field) and see if it is expired.

But scheduler can do what you want, you just need to add a new field to the content type for the expiration date and set it to expire on that.