, 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); })(); Event Services | ÃÛÌÒapp

ÃÛÌÒapp

Skip to main content

Event Services

Venues at ÃÛÌÒapp

Whatever your event—whatever your style—we have the venue, the amenities and the hospitality to make it unforgettable.ÌýÌý
Everything you need, including on-site lodging, excellent dining and catering options, beautiful, innovative facilities—and exceptional hospitality.

Venues Events Start Planning



Ìý

Catering

From breakfast for your corporate event to fine dining for a wedding, our versatile catering options can meet your needs.

400-acre campus

Plenty of space for guests, parking, receptions, outdoor activities and meetings.

Local attractions

ÃÛÌÒapp is located minutes from Frederik Meijer Gardens, public museums and downtown Grand Rapids.

Made in the shade

We're proud of our trees - all 3,500 of them (we counted). And we've been recognized for it: ÃÛÌÒapp has been named a Tree Campus USA by the Arbor Day Foundation.

Grand Rapids

Lake Michigan

30 minutes from Lake Michigan, 300-mile Gold Coast.

Home of ArtPrize

For 19 days each fall, the city's contemporary art competition attracts more than 1,500 artists and awards $500,000 in prizes.

WHY CALVIN?

Taste

ÃÛÌÒapp Catering delivers exceptional service and food for your events.

Taste
Experience

We host hundreds of events - from big to small - every year.

Experience
We love sports

As a Division III school, we have world-class athletic facilities and resources for big and small events.

We love sports
Unique choices

You can choose to host an event in our beautiful art gallery or our rock wall that is modeled after the Red River Gorge.

Unique choices
Location. Location. Location.

Grand Rapids, Michigan is a creative city and great place to explore.

Location. Location. Location.
Beauty

Our campus is stunning in all four seasons.

Beauty