1. 'GiftCard' entity has 'CreateOnUtc' property so you know when it's created 2. Create a schedule task (ITask) where load all gift cards and loop through each of them 3. If it was create one year ago and later, the just disable it (set 'IsGiftCardActivated' property to 'false')
P.S. It's the easiest way which almost does not require source code changes. But you'll not be able to set distinct expiration dates for distinct gift cards in this case.