I've just finished up deployment and testing of the 0.5.0 release of the Ethereum Alarm Service. This release introduces a number of major API improvements that should make integrating with the service simpler and easier.
In previous versions of Alarm, all of the data was stored in a single central contract. This release changes the service to deploy a new contract for each scheduled call. Each of these call contracts manages it's own gas money, which has simplified the accounting logic and allowed for automatic reimbursement of unused gas money (previously you would have to withdraw it manually).
This version also introduces major changes in the payments/fees that go to the call executor and myself. In the previous versions these values were calculated from the gas used, making it unpredictable how much a call would be worth, as well as giving schedulers no control over how much they would like to pay for their call to be executed. This release opens the Alarm service up as a free market where schedulers can choose what payment and fee amount they want to pay, and in turn, executors can know how much they will get paid for execution.
The authentication API has also been deprecated and removed. Previously, it was not possible for a contract being called by the Alarm service to query information about the scheduled call, such as who scheduled it. In this version, a contract can look at msg.sender and lookup the call scheduler with the Alarm service, eliminating the need for the Relay contracts and the authorization of schedulers.
This release marks a big step for the service. Moving the call execution into individual contracts opens up a much simpler path to new types of scheduled calls. The first that you are likely to see are calls set for specific times (rather than blocks), and then recurring calls.