So there is code that already prevents the display of a product until it has "arrived", but the issue you have is that it needs to also go away at a certain time not necessarily at a certain stock level... The first condition is addressed by providing an available date that is in the future on the product_info page, though that takes care of this or the coming year, not next year/season.


There have been some in the past that have asked for such a "end" time for a product, but I can not recall what has been done to specifically make that possible. I don't think it would take much to add a field for an "expiration" and then even if necessary to basically automatically increase the date of both fields by a year when the expiration date has been reached...


Sum total, one additional field in the table that contains the start at field, some additional code to reverse the process (disable product) that is performed to enable the product and at same time to increment both fields by one year (or if necessary a yet additional field to identify how far out to bump both dates. Gets more complicated if they don't shift in parallel, but maybe get the picture.


I don't know of any existing plugin, but would suggest continuing to search the plugin section either directly or by your favorite web search engine.