We run outreach daily, and the thing that changed this for us was dropping the calendar entirely.
What we watch instead is the unreachable rate on a small test batch. Before a campaign we send to a hundred or so contacts off the list. If the share that can't be reached at all is above what we normally see, the list gets rebuilt from source rather than cleaned. If it sits in the usual range, the list is fine for another run, whether it's two weeks or four months old.
That holds up better than a fixed interval because lists don't decay at a fixed rate. One pulled from an active source goes stale quickly, one from a slow niche stays usable far longer. Age is a guess. The test batch is a measurement, and it costs almost nothing to run.
Best,
Floqal