Jazz, Rubik’s Cubes, pancakes and lumberjacks: Fourth of July weekend in Iowa City, Coralville and Cedar Rapids

Fourth of July fireworks at the end of Iowa City Jazz Fest, July 1, 2018. — photo by Abby Evans

Activities are plentiful for anyone looking to celebrate Fourth of July in the CRANDIC. Enjoy the sunny weekend with the Freedom Festival in Cedar Rapids, Jazz Fest in Iowa City, 4thFest in Coralville — or festival hop and try to make it to all three.

Of course, since it’s the Fourth of July, there will be fireworks in all three cities. Also, art from a star Hawkeye athlete and a surprising amount of lumberjacking.

Friday, July 2

Iowa City

COVID-19 forced the Iowa City Jazz Fest to go virtual last year, but things have improved enough for the 31-year-old music festival to return to in-person performances this year, albeit with a smaller line-up over two days — Friday and Saturday — instead of the three days of performances as in the pre-pandemic days.

All the performances on Friday take place at the Weatherdance Fountain Stage on the Ped Mall.

4:30 pm Schoolhouse Jazz
6:30 pm NOLA Jazz Band
8:10 pm Big Fun

As always, there’s no admission cost for Iowa City Jazz Fest performances.


Coralville’s 4thFest will be taking place all weekend long, in and around S.T. Morrison Park. There will also be a carnival located at the south end of S.T. Morrison Park, in the parking lot of the Coralville Community Aquatic Center (1513 7th St). The rides and games start at 5 p.m. and run until dark, according the city’s 4thFest site.

Tickets are required at $1 each or $20 for a pack of 22 tickets. Kids rides cost two tickets each and “major rides” cost either three or four.

But the carnival isn’t the only attraction at 4thFest on Friday.

Star pitcher for the University of Iowa’s baseball team Jack Dreyer will be demonstrating a different talent — his ability to create murals from Rubik’s Cubes.

Dreyer will be in the park manipulating cubes into a mural celebrating 4thFest starting at 4:30 p.m.

From 6:30 to 8 p.m., members of Coralville’s police and fire department will fire up their grills for the Free 4thFest Feast, and DJ Ron will be providing music as people nosh.

Other 4thFest events get underway in the park at 6:30 p.m., including games for the kids and “Lumberjack Camp: Lumberjacks teach log rolling, axe throwing, and x-cut sawing; for all ages.”

Saturday, July 3

Iowa City

At 11:30 a.m., Jazz Fest moves from the Ped Mall to the streets, and brings with it food vendors and stalls filled with art. An online map is available for people needing to orientate themselves, but wandering up and down Clinton Street between Washington and Jefferson, and Iowa Avenue from Clinton to Dubuque, should also work.

The schedule for the Main Stage (Clinton and Jefferson):

11:30 am United Jazz Ensemble
12:15 pm North Corridor Jazz All Stars
2:00 pm Giveton Gelin
4:00 pm Immanuel Wilkins
6:00 pm Bonegasm
8:00 pm Cory Wong

The schedule for the Local Stage (Clinton and Washington):

1:00 pm Bad News
3:00 pm Peterson/Thaker Quartet
5:00 pm Jim Buennig
7:00 pm Wave Cage

And following Jazz Fest at 9:30 p.m., the sky over the Pentacrest will explode with patriotism and colorful gunpowder as the annual City of Iowa City fireworks show marks the Forth of July (or Fourth of July eve, in this case).


Food vendors will open in S.T. Morrison Park at 11:30 p.m. on Saturday, a half-hour before the rest of 4thFest recommences.

At noon, the carnival opens for business, and the first of the day’s All American Lumberjack Shows commences, featuring 10 events pitting lumberjack against lumberjack. There will be two more lumberjack shows — at 3 p.m. and 6 p.m. — with lumberjack camps in between at 12:30 p.m. and 3:30 p.m.

At 3 p.m. there will be American Legion bingo in the parks Hilltop shelter, and at 4 p.m., Jack Dreyer will cube another mural.

There will be a free concert in the park to finish off the day’s events, with The Danny Whitson Band taking the stage at 6:30 p.m., followed by Josh Turner at 8 p.m.

Cedar Rapids

Cedar Rapids’ annual Freedom Fest, which kicked off on Flag Day (June 14), rolls into its final weekend with a virtual version of Music at the Museum, featuring The Pork Tornadoes. This year’s event will on Facebook (in no way a museum) instead of the Czech and Slovak Museum (definitely a museum). The livestream of the show starts at 7 p.m.

Sunday, July 4


Events start early on Sunday, with to-go pancake breakfasts available for pickup at Coralville Recreation Center (1506 8th St). The Corridor Kiwanis Club will be serving up pancakes with syrup, sausage and juice. You’ll need a ticket for a breakfast, and they’ll be on sale outside at a booth outside the center.

At noon, the carnival opens again, along with the food vendors in the park, and at the intersection of 9th Street and 22nd Avenue, the 4thFest parade starts rolling. The parade will feature marching bands and floats.

Jack Dreyer cubes up another mural in the park staring at 2 p.m. A baton twirling exhibition starts at the same time. At 3 p.m., the American Legion starts three hours of bingo in the same spot as Saturday, while elsewhere in the park there will be games and events throughout the afternoon and evening.

The day and the fest finish with a fireworks display at 9:45 p.m.

Cedar Rapids

The day begins with a drive-through pancake breakfast in the parking lot of the ImOn Ice Arena (1100 Rockford Rd SW). The to-go meals will feature pancakes, sausages, granola bars, bananas, and orange juice. The meals are $5 each; only cash or Venmo is accepted.

After pancakes, you can head over to the Freedom Festival car show, which will be held at the Kernels upper parking lot from 8 a.m. to noon. The car and motorcycles on display will be competing for prizes, with the winners being crowned shortly after 11:30 a.m.

Fireworks in downtown Cedar Rapids finish out the Fourth. Organizers say this will be the largest fireworks show the festival has produced. The best viewing spots — the 2nd Avenue Bridge and McGrath Amphitheatre — will open at 7 p.m.

[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='/fourth-of-july-2021/#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' >Name</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="111"/><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>