I would like to create a lottery. For that I would need to have a repeating payout event every 1h or 24h -> is this even possible with Solidity/Ethereum?
Solidity doesn't have a timer function. As time or date functions could potentially lead to non-deterministic behavior, which is a bad thing.
To achieve similar functionality, you could use the block timestamp or current block number to approximate a given time interval knowing the blocks are produced roughly every 14 seconds.
To invoke any behavior that modifies state of an Ethereum contract it is necessary to send a transaction from an external address. So it is not possible to trigger any method call without having an external agent (so called "oracle") that would invoke a contract method.
What is possible though is to make the payout amount calculation dependent on time. So instead of doing the actual payout every 24 hours you would only do the payout when the recipient explicitly asks for it. At that time you would calculate how much should be sent to the recipient based on the time that passed from the moment you would start the cron job doing the payout.