Applies a 'season:<name>' tag to products matching a search during a configured date window and removes it once the window closes.
async def run(ctx): season = ctx.params["season_name"] active = ctx.params["starts"] <= ctx.today() <= ctx.params["ends"] for product in await ctx.shopify.query(search(ctx.params["query"])):
How do you schedule seasonal tags on Shopify?
To schedule seasonal tags on Shopify, this template applies a season tag to products matching your search while a configured date window is open and removes it once the window closes. The window and the search are both parameters, so "summer" can mean a tag, a product type, a vendor, or any Shopify search you can write, and next year the same automation runs with new dates. Smart collections bound to the tag switch the storefront into and out of the season on time.
The painful half is always the teardown: summer tags surviving into October because untagging is nobody's job. With the window as code, the teardown is just the day the condition flips. Each run lists which products would gain or lose the season tag; approving it is the whole workflow, and the late-night tagging session before launch stops existing.
Last updated August 24, 2026
If you run a sharper version of this template, or something it inspired, send it in. We review every application and publish the good ones, credited to you or your agency.
AI writes real Python or TypeScript, a dry run rehearses it, you approve, it deploys.
Free plan · no card · 🇪🇺 EU data residency