Adam,
Here are some lines of code that may help you:
context.stocks = [sid(21090),sid(698),sid(6872),sid(4415),sid(6119),sid(8229),sid(39778),sid(14328),sid(630),sid(4313)]
event_hour = data[context.stocks[0]].datetime.hour
event_minute = data[context.stocks[0]].datetime.minute
The list of securities goes in def initialize(context): and you can extract the hour and minute of the event in def handle_data(context, data):. Note that the hour and minute correspond to the first security in the list, sid(21090). The backtester "loop" runs over events, not days/minutes, so datetime is associated with a specific historical event (in this case, trade data for sid(21090), Target Corporation). Note, however, that the batch transform patches up holes in the tic data, as described on the help page...a shortcoming that will eventually be fixed, I'm told.
If you want to get a feel for how the backtester handles tics and time, try these securities over various backtest periods:
context.stocks = [sid(41290),sid(41425),sid(39479),sid(33972),sid(41159)]
They don't trade every minute that the market is open.