Calling a function based on time frequency

Yes You can… with Process.send()

The longer version is, You can have a gen_server sending itself a message periodically, and in the handle info, process some work, and resend itself a message.