Why is SQL Server Agent not starting?

It's because you've installed SQL Server Express (indicated by the instance name SQLEXPRESS), SQL Server Agent is not supported in this version, it installs the service, but it does not allow it to run. You need one of the non-free SQL server editions in order to use SQL Server Agent.


In case you'are using SQL Server Express, before quiting, I think you should know that SQL Server versions (including Express) offers a system stored procedure named sp_procoption, which allows one to define a user stored procedure name to be executed whenever SQL Server instance is started and lives along your SQL Server service. That user stored procedure can contain your onwn scheduling loop.

exec sp_procoption @ProcName = ['put your procedure name'], @OptionName = 'STARTUP', @OptionValue = [on|off]

For further reading, I would suggest checking Armando Pratos's excellent article and this SQL Server Online Book