Iowa code states that they have to give you three hours to vote but only if you don't have three hours outside of your working hours in which to do so. It also states they are under no obligation to pay you for that time off. That said, it usually takes me 30 minutes TOPS to vote and that includes driving to my polling place. While I think voting is important, I can't imagine taking time off work to do so, especially when there is early and absentee voting available.
Iowa Code at Section 49.109 states that any employee eligible to vote in Iowa must have at least three (3) consecutive hours during the time the polls are open (currently 7 a.m. to 9 p.m.) in which they have time to go vote. An employer may have to give the employee some time off to make sure the person has these three (3) consecutive hours, totaling up work time and non-working time. For example, if an employee’s normal working hours are from 8 a.m. to 5 p. m., the employer has NO obligation to give the employee time off to vote because there are at least three (3) consecutive hours at the end of the employee’s work day, from 5 p.m. to 9 p.m., when the polls are still open. Now if the employee’s work hours are from 9 a.m. to 7 p.m., then the employer is obligated to allow the employee an hour of leave either at the beginning of the day, or the end of the day, or sufficient time off in the middle of the day, to make sure the person has sufficient time off in which to go vote. An employer does not have to pay the employee for the time off to vote, unless the employer has a policy or past practice of doing so, then the employer must follow the policy or past practice. It is up to the employer if the employer wants to make the employee take it as unpaid leave, vacation, or some kind of paid time off.