This question is not about external solutions, but are there technical limitations to why a contract that has funds, can't schedule itself to run at a future block? Could the Ethereum protocol have been designed to include this functionality and if so, what would it have involved?
I believe this was designed as a feature to minimize the burden on the network and reduce resources. There are several solutions if you want to "call on a contract":
I'm proud to announce the launch of the Ethereum Alarm Clock service.
The Alarm service facilitates scheduling contract function calls for a specified block number in the future. The current release should be considered alpha software.
- Schedule contract function calls to be executed at a specified block in the future.
- Trustless. No administrative API's or special access granted to anyone, including myself.
- Published verifiable source code.
- Lots of documentation with examples.
I'm very interested to hear people's feedback. Feel free to send me a message at pipermerriam on gitter.