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

ÃÛÌÒapp

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); })(); Events List | ÃÛÌÒapp

ÃÛÌÒapp

Skip to main content

Events List

Jul 22, 2025

West Michigan Young Alumni Network Happy Hour at New Holland Brewing Co.

6:30 pm–8:30 pm
A Tuesday evening in Holland with young alums!
Jul 23, 2025

January Series in July - Behind the scenes at the Grand Rapids Public Museum Archives

12:00 pm
Join us for a behind-the-scenes visit to the Grand Rapids Public Museum archives. Hear from the archivists in their area of specialty, discover hidden gems in the museum's collection, and experience the rich history of the collection. From dugout canoes to mastodons to Santa's Rocket Express, it's all there. *The January Series in July is pre-recorded and shared online to our viewers.
Jul 25, 2025

Salt Lake City Alumni Event

5:30 pm–7:00 pm
Join alumni & friends in Salt Lake City!
Jul 26, 2025

CPI Family & Friends Picnic

12:00 pm–2:00 pm
Seminary Student Center
Jul 29–Jul 31, 2025

Preserve | Nature Camp | Multigenerational Outside Art!!

9:00 am–4:00 pm
Bunker Interpretive Center
Here's one for kids of ALL ages!
Jul 31, 2025

Hamilton with Broadway GR (Sold Out)

7:30 pm–10:30 pm
Do not throw away your shot!
Aug 05–Aug 11, 2025

Pictured Rocks Backpacking Expedition

Pictured Rocks National Lakeshore
$699
Backpack the entire Pictured Rocks coastline from Munising Falls to the AuSable Light Station.
Aug 05–Aug 11, 2025

Michigan Base Camp Adventure

$699
Choose this amazing trip if you love the outdoors, the comforts of home, and incredible adventure canoeing, biking, high ropes, and a beach day!
Aug 07, 2025

Alumni at The West Michigan Whitecaps

6:35 pm–9:00 pm
$17 per person
The first of our Knight Time in August events: a West Michigan Whitecaps game!
Aug 08, 2025

Summer Visit Day

9:30 am–1:00 pm
Spoelhof University Center
Discover ÃÛÌÒapp and our beautiful 400-acre campus this summer!