/script t1 = GetTime() if not t2 or t1 > (t2 + 5) then t2 = GetTime() CastSpellByName("Power Infusion") SendChatMessage("Power Infusion on you","WHISPER", nil, UnitName"target") end
you can replace the 5 with the time in seconds when the whisper + spell should work again
this macro does not check if the spell was successful