I have an EV script I have written that I am constantly trying to make better.  I replaced all the target [seconds] with this while/scan journal stuff...
  ReCastInvis:
   set %jindex #Jindex + 2    ;sets spot to start the Jornal Scanning
   event macro 15 43          ;cast Invis
    while #targcurs = 0        ;While (Until) the spell is being cast does the brackets
    {
     scanjournal              ;Reads the jornal
     if thy_spell in #journal ;If "Thy Spell" is in jornal recast spell and start over
     goto ReCastInvis         ;Goes back up to cast the spell again
     if Spell_Fizzles in #journal ;checks if you fizzle spell
     goto ReCastInvis         ;Goes back up to cast the spell again
     wait 5
    }[/b]
  event macro 23              ;target self
  wait 1s                     ;waits 2 second
  }
 Return
It's getting the job done, but I wanted to see if anyone had any suggestions.  The timers worked good, but I noticed if I was trying to cast a spell and got fizzled it had to wait for the target timer to time out until it tried again.  
This is my first time using scan journal.  It seems a bit unstable and not very efficient in the way I'm using it.
Thanks for any help.