Programmatically schedule the execution of a component
I know this is an older post, but I had the same problem, and found this post. I found the answer so maybe someone can use it later:

$state = new RulesState();
$state-&gt;addVariable('variable_name', $variable, array());
// 3rd parameter is called $info it must be an array, but i don't know it's function

$task = array(
'identifier' =&gt; 'unique_id_of_scheduled_task',
'date' =&gt; time(), // timestamp
'config' =&gt; 'id_of_the_rule_component_to_run',
'state' =&gt; $state,
);

rules_scheduler_schedule_task($task);


So you have to create a RulesState object and pass in that in place of the 'state' parameter.
I had to do this because in Rules I couldn't get the timestamp I wanted when I was configuring the "Schedule component evaluation" action.