Right but normally its #include <Timer.h>
Not saying the enclosed quote version can't work, I've just never used it that way or noticed it in any other sketch that way. And the fact that the library folder itself has a typo in it....
So I just downloaded that lib. The quotes do work but then so do the <>. Why buck tradition when you're having a problem: go with the<>
The update() works fine here.
So back to the original problem.
First you don't need the Timer library. The arduino can count up to an hour (and beyond) using the built in millis() function. Once the card triggers an input pin, you sample the current "time" and then everytime through the loop you check it again and subtract the original sample). An hour is 3600000 ms.
While the subtraction = than an hour of milliseconds you can set a pin to high to trigger a relay or transistor or mosfet and let the current flow - remember if you do it directly with the arduino pin, the pin can only deliver 40ma of power (for an Uno for example), that's why you normally need some other circuitry to run stuff in the real world.
Once that subtraction equals an hour of milliseconds, you can set your output pin to low, cutting the current off. You should add a dropping resistor on this pin so that when you tell it to go low, it's guaranteed.
If the system detects another card before the hour is up, you can reset the "clock" by sampling the current time again and the current will flow for another hour from that point on.
The problem with the TIMER lib and using the code you have is that every hour it will turn on and off regardless of user input. In fact if you look into the libraries, what we're doing above is all the Timer library is doing with it's "now" command, each time the update() fires. There are more commands in there you could use to do this but I think the above approach is easier.
Keep in mind that to hold a large number like 3,600,000 you have to use a "long" variable and not just an "int" (and with that Timer lib the variable that holds the period may not be big enough for the numbers you need - even 10 minutes in ms is bigger than an int can hold- you could change that but the millis() command seems to be all you need.)
So:
wait for card input and do nothing else
On card input Set pin high and sample time
check time again repeatedly
does difference = 3,600000?
yes -> set pin low, set time holder variables to 0, wait for card input again
No -> go back and sample time again