, but this code // executes before the first paint, when

Â鶹Çø

is not yet present. The // classes are added to so styling immediately reflects the current // toolbar state. The classes are removed after the toolbar completes // initialization. const classesToAdd = ['toolbar-loading', 'toolbar-anti-flicker']; if (toolbarState) { const { orientation, hasActiveTab, isFixed, activeTray, activeTabId, isOriented, userButtonMinWidth } = toolbarState; classesToAdd.push( orientation ? `toolbar-` + orientation + `` : 'toolbar-horizontal', ); if (hasActiveTab !== false) { classesToAdd.push('toolbar-tray-open'); } if (isFixed) { classesToAdd.push('toolbar-fixed'); } if (isOriented) { classesToAdd.push('toolbar-oriented'); } if (activeTray) { // These styles are added so the active tab/tray styles are present // immediately instead of "flickering" on as the toolbar initializes. In // instances where a tray is lazy loaded, these styles facilitate the // lazy loaded tray appearing gracefully and without reflow. const styleContent = ` .toolbar-loading #` + activeTabId + ` { background-image: linear-gradient(rgba(255, 255, 255, 0.25) 20%, transparent 200%); } .toolbar-loading #` + activeTabId + `-tray { display: block; box-shadow: -1px 0 5px 2px rgb(0 0 0 / 33%); border-right: 1px solid #aaa; background-color: #f5f5f5; z-index: 0; } .toolbar-loading.toolbar-vertical.toolbar-tray-open #` + activeTabId + `-tray { width: 15rem; height: 100vh; } .toolbar-loading.toolbar-horizontal :not(#` + activeTray + `) > .toolbar-lining {opacity: 0}`; const style = document.createElement('style'); style.textContent = styleContent; style.setAttribute('data-toolbar-anti-flicker-loading', true); document.querySelector('head').appendChild(style); if (userButtonMinWidth) { const userButtonStyle = document.createElement('style'); userButtonStyle.textContent = `#toolbar-item-user {min-width: ` + userButtonMinWidth +`px;}` document.querySelector('head').appendChild(userButtonStyle); } } } document.querySelector('html').classList.add(...classesToAdd); })(); Intramurals Recreation & Outdoor Programs | Â鶹Çø

Â鶹Çø

Skip to main content

Intramurals

Absolutely everyone is encouraged to join an intramural team.

We believe intramurals are an important part of campus life, and we want you to be a part of it by participating in one or more of a variety of sports, special events, and outdoor recreational opportunities. Our program is designed to emphasize active participation and fun.

Follow us on to stay up to date on all news Intramurals!

Calvin Intramural Leagues & Schedules (Spring 2025)

SIGN UP DEADLINE: March 21 by 6pm
PLAY BEGINS: March 24 - April 24
LEAGUE TOURNAMENTS: April 28 - May 1
Ìý
Sign up at the links above.
Ìý
For more information email imsports@calvin.edu
Ìý
All leagues are co-ed. Most leagues offer both recreational (Maroon) or advanced (Gold). Recreational is for fun and casual play; advanced is intended for competitive play.
Ìý
LEAGUES
ÌýIM SPORTLOCATIONTIME
Rec BasketballHoogenboom GymM/W 6-10pm
Women's BasketballHoogenboom GymM/W 6-7pm
Adv BasketballHoogenboom GymM/W 6-10pm
Coed Rec VolleyballHoogenboom GymM/T/Th 6-10pm
Women's VolleyballHoogenboom GymM/W 7-10pm
Adv VolleyballHoogenboom GymT/W/Th 6-10pm
Coed Rec FutsalTennis & Track CenterM/W 8-10pm
Adv FutsalTennis & Track CenterM/W 8-10pm
Open PickleballHoogenboom GymT/Th 4-6pm
Open Table TennisKHVR BasementTu 7-9pm
ADDITIONAL TOURNAMENT
Ìý
3 v 3 Basketball Tournament
Tuesday, April 8, 6-10 pm
Van Noord Arena and Upper Arena Gyms
Advanced Men's, Rec Men's, Co-ed Rec, and Women's Divisions
Ìý
Ìý
Ìý
Ìý
Ìý