I'm working with the OpenZeppelin solidity framework to run a crowdsale script, but would like to ask, is there is an existing open source solution for implementing time-based bonus payouts?
You can find an example here:
But I would recommend tranche based bonus (sold tokes / raised ETH) instead of a time based bonus, as the latter is more unfair and often causes negative emotional response from the buyers.
You can possibly find something similar online (I'm not very knowledgeable about those) but no matter what you find, you'll face an important problem: execution. When do you want the payouts to happen?
If I understand correctly, you'd like to distribute additional airdops automatically from the samrt contract based on the current time. The problem with this idea is that contracts can never execute anything 'on their own'. Someone always has to call the contract do actually get the contract to perform something and the caller pays the gas fees for the whole execution.