State Sen. Jim Carlin, a hardcore Trump supporter, becomes the first declared candidate in the 2022 U.S. Senate race

State Sen. Jim Carlin, R-Sioux City. — official photo

The 2022 U.S. Senate election in Iowa now has its first official candidate. On Monday, Republican state Sen. Jim Carlin announced he is running for the seat that Chuck Grassley has held since 1981.

Carlin has served in the Iowa State Senate, representing part of Woodbury County, since winning a special election in 2017. He has attracted some attention this legislative session by sponsoring bills including one that would reintroduce the death penalty, which Iowa abolished in 1965. Another bill sponsored by Carlin would divert money from public schools to private schools, something Gov. Reynolds called for in her Condition of the State speech.

This session Carlin also introduced a so-called “bathroom bill” that mandates schools only allow students to use bathrooms that correspond to the sex listed on their birth certificate. And he is the author of a bill that would require the Board of Regents to report on the political party affiliation of everyone employed by Iowa’s three public universities.

Carlin began the speech announcing his candidacy at the American Legion Post in Sergeant Bluff by quoting Ronald Reagan, but Donald Trump was the president who figured most prominently in Carlin’s announcement.

Carlin listed Trump’s priorities as president as his own. He also complained that the 2020 election was not fair.

That Carlin would suggest Joe Biden’s victory in November was not legitimate isn’t a surprise. As Pat Rynard pointed out in Iowa Starting Line, Carlin has been claiming the election was stolen from Trump for months.

Shortly after the election in November, Carlin was a featured speaker at a Stand With President Trump Rally in Orange City, where he made the fact-free allegation that there was a massive conspiracy to deprive Trump of a second term.

“This whole thing was planned and orchestrated for months before it ever took place. We have to deal with that reality,” Carlin said. “We’re dealing with dishonest people who want to control and manipulate, define and shame us into silence and submission at the cost of our constitutional freedom and self-determination.”

In January, Carlin took to the floor of the Iowa Senate to again promote his baseless claims about “widespread fraud” in the election, warning that “Tyranny’s not at the door, it’s in the house. It would seek to redefine America as a nation no longer free. To make freedom appear evil, to make slavery a virtue.”

On Monday, Carlin used his unsupported belief that the last election was riddled with fraud to call for changes in how voting is conducted, because “American democracy will crumble if voters lose faith in the integrity of elections and those who count the ballots.”

Carlin praised Trump not only for his actions as president, but also for the enemies he had.

“Sometimes you can know who a person is by their enemies,” he said. “No one knows this better than President Trump. The same people who threaten our freedoms and seek to control what we see, read and hear from one another hated him. You have to ask yourself why? … I commend and am grateful for all his efforts to keep America a free and prosperous nation. He stood up. We can do no less.”

Carlin followed that by assuring listeners, “I am not running as a purveyor of grievances,” before immediately going on to say he will always fight “those who belittle our culture, undermine our way of life, or relegate the patriotic and the God-loving to second-class citizens in a country we love.”

“Our freedom is really what they are after,” he said.

At no point in his speech did Carlin mention Chuck Grassley, even though Grassley has been in the office he is seeking as long as Carlin has lived in Iowa. Carlin, who grew up in Massachusetts, moved to Sioux City, where works as an attorney, in 1992. Grassley was first elected to the Senate in 1980, and has been in elective office at either the state or federal level since 1959.

Sen. Chuck Grassley at the Night of the Rising Stars in Des Moines. April 2, 2011. — Gage Skidmore

The 87-year-old senior senator has not yet announced if he will run for reelection next year. Earlier this month, he told reporters he would likely make his decision in “several weeks.”

Speaking to the Cedar Falls Rotary Club last year, Grassley said his health would be an important factor in determining whether he would run again.

“Now the one thing I want to make sure of is, that I don’t become a Senator [Robert] Byrd, where, the last two years on office, I have to have a nurse with me,” he said. “Or when [Strom] Thurmond left office at 100 years and three months, but the last couple of years, he needed a lot of help.”

If reelected in 2022, Grassley would be 95 at end of that term.

Carlin told the Des Moines Register it doesn’t matter to him if Grassley chooses to run again.

“I appreciate [Grassley’s] service, as anybody does,” he said. “But I didn’t get in the race to drop out.”

[gravityform id="17" title="false" description="false" ajax="true"]
<div class='gf_browser_unknown gform_wrapper your-village-form_wrapper' id='gform_wrapper_17' ><a id='gf_17' class='gform_anchor' ></a><form method='post' enctype='multipart/form-data' target='gform_ajax_frame_17' id='gform_17' class='your-village-form' action='/state-sen-jim-carlin-first-declared-candidate-2022-senate-race/#gf_17'> <div class='gform_body'><ul id='gform_fields_17' class='gform_fields top_label form_sublabel_below description_below'><li id='field_17_7' class='gfield gfield_html gfield_html_formatted gfield_no_follows_desc field_sublabel_below field_description_below gfield_visibility_visible' ><h3 style="font-weight:800; font-size:34px;">Let's get started</h3> <p style="font-size:18px;">Fill out this form and we'll contact you with information about marketing with Little Village!</p></li><li id='field_17_4' class='gfield field_sublabel_below field_description_below gfield_visibility_visible' ><label class='gfield_label gfield_label_before_complex' for='input_17_4_3' ></label><div class='ginput_complex ginput_container no_prefix has_first_name no_middle_name has_last_name no_suffix gf_name_has_2 ginput_container_name gfield_trigger_change' id='input_17_4'> <span id='input_17_4_3_container' class='name_first' > <input type='text' name='input_4.3' id='input_17_4_3' value='' aria-label='First name' tabindex='2' aria-invalid="false" placeholder='First name'/> <label for='input_17_4_3' >First</label> </span> <span id='input_17_4_6_container' class='name_last' > <input type='text' name='input_4.6' id='input_17_4_6' value='' aria-label='Last name' tabindex='4' aria-invalid="false" placeholder='Last name'/> <label for='input_17_4_6' >Last</label> </span> </div></li><li id='field_17_5' class='gfield gfield_contains_required field_sublabel_below field_description_below gfield_visibility_visible' ><label class='gfield_label' for='input_17_5' ><span class='gfield_required'>*</span></label><div class='ginput_container ginput_container_text'><input name='input_5' id='input_17_5' type='text' value='' class='large' tabindex='6' placeholder='Company name' aria-required="true" aria-invalid="false" /></div></li><li id='field_17_3' class='gfield gfield_contains_required field_sublabel_below field_description_below gfield_visibility_visible' ><label class='gfield_label' for='input_17_3' ><span class='gfield_required'>*</span></label><div class='ginput_container ginput_container_email'> <input name='input_3' id='input_17_3' type='text' value='' class='large' tabindex='7' placeholder='Your email address' aria-required="true" aria-invalid="false"/> </div></li><li id='field_17_8' class='gfield gform_validation_container field_sublabel_below field_description_below gfield_visibility_' ><label class='gfield_label' for='input_17_8' >Comments</label><div class='ginput_container'><input name='input_8' id='input_17_8' type='text' value='' /></div><div class='gfield_description'>This field is for validation purposes and should be left unchanged.</div></li> </ul></div> <div class='gform_footer top_label'> <input type='submit' id='gform_submit_button_17' class='gform_button button' value='SUBMIT' tabindex='8' onclick='if(window["gf_submitting_17"]){return false;} window["gf_submitting_17"]=true; ' onkeypress='if( event.keyCode == 13 ){ if(window["gf_submitting_17"]){return false;} window["gf_submitting_17"]=true; jQuery("#gform_17").trigger("submit",[true]); }' /> <input type='hidden' name='gform_ajax' value='form_id=17&amp;title=&amp;description=&amp;tabindex=1' /> <input type='hidden' class='gform_hidden' name='is_submit_17' value='1' /> <input type='hidden' class='gform_hidden' name='gform_submit' value='17' /> <input type='hidden' class='gform_hidden' name='gform_unique_id' value='' /> <input type='hidden' class='gform_hidden' name='state_17' value='WyJbXSIsIjlmNzc1YTEyZmZjNmYyODk5Mzk0NDM3ZjRlOGYyZDNmIl0=' /> <input type='hidden' class='gform_hidden' name='gform_target_page_number_17' id='gform_target_page_number_17' value='0' /> <input type='hidden' class='gform_hidden' name='gform_source_page_number_17' id='gform_source_page_number_17' value='1' /> <input type='hidden' name='gform_field_values' value='' /> </div> <p style="display: none !important;"><label>&#916;<textarea name="ak_hp_textarea" cols="45" rows="8" maxlength="100"></textarea></label><input type="hidden" id="ak_js_1" name="ak_js" value="90"/><script>document.getElementById( "ak_js_1" ).setAttribute( "value", ( new Date() ).getTime() );</script></p></form> </div> <iframe style='display:none;width:0px;height:0px;' src='about:blank' name='gform_ajax_frame_17' id='gform_ajax_frame_17'>This iframe contains the logic required to handle Ajax powered Gravity Forms.</iframe> <script type='text/javascript'>jQuery(document).ready(function($){gformInitSpinner( 17, '' );jQuery('#gform_ajax_frame_17').load( function(){var contents = jQuery(this).contents().find('*').html();var is_postback = contents.indexOf('GF_AJAX_POSTBACK') >= 0;if(!is_postback){return;}var form_content = jQuery(this).contents().find('#gform_wrapper_17');var is_confirmation = jQuery(this).contents().find('#gform_confirmation_wrapper_17').length > 0;var is_redirect = contents.indexOf('gformRedirect(){') >= 0;var is_form = form_content.length > 0 && ! is_redirect && ! is_confirmation;if(is_form){jQuery('#gform_wrapper_17').html(form_content.html());if(form_content.hasClass('gform_validation_error')){jQuery('#gform_wrapper_17').addClass('gform_validation_error');} else {jQuery('#gform_wrapper_17').removeClass('gform_validation_error');}setTimeout( function() { /* delay the scroll by 50 milliseconds to fix a bug in chrome */ jQuery(document).scrollTop(jQuery('#gform_wrapper_17').offset().top); }, 50 );if(window['gformInitDatepicker']) {gformInitDatepicker();}if(window['gformInitPriceFields']) {gformInitPriceFields();}var current_page = jQuery('#gform_source_page_number_17').val();gformInitSpinner( 17, '' );jQuery(document).trigger('gform_page_loaded', [17, current_page]);window['gf_submitting_17'] = false;}else if(!is_redirect){var confirmation_content = jQuery(this).contents().find('.GF_AJAX_POSTBACK').html();if(!confirmation_content){confirmation_content = contents;}setTimeout(function(){jQuery('#gform_wrapper_17').replaceWith(confirmation_content);jQuery(document).scrollTop(jQuery('#gf_17').offset().top);jQuery(document).trigger('gform_confirmation_loaded', [17]);window['gf_submitting_17'] = false;}, 50);}else{jQuery('#gform_17').append(contents);if(window['gformRedirect']) {gformRedirect();}}jQuery(document).trigger('gform_post_render', [17, current_page]);} );} );</script><script type='text/javascript'> if(typeof gf_global == 'undefined') var gf_global = {"gf_currency_config":{"name":"U.S. Dollar","symbol_left":"$","symbol_right":"","symbol_padding":"","thousand_separator":",","decimal_separator":".","decimals":2},"base_url":"https:\/\/\/wp-content\/plugins\/gravityforms-asdf111aasdfffs-nope","number_formats":[],"spinnerUrl":"https:\/\/\/wp-content\/plugins\/gravityforms-asdf111aasdfffs-nope\/images\/spinner.gif"};jQuery(document).bind('gform_post_render', function(event, formId, currentPage){if(formId == 17) {if(typeof Placeholders != 'undefined'){ Placeholders.enable(); }} } );jQuery(document).bind('gform_post_conditional_logic', function(event, formId, fields, isInit){} );</script><script type='text/javascript'> jQuery(document).ready(function(){jQuery(document).trigger('gform_post_render', [17, 1]) } ); </script>