, 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); })(); CAA/CALL Travel: Netherlands: Thu, May 28 - Sat, Jun 6 2026, All day | ÃÛÌÒapp

ÃÛÌÒapp

Skip to main content

Events Calendar

S M T W T F S
26
 
27
 
28
 
29
 
30
 
1
 
2
 
3
 
4
 
5
 
6
 
7
 
8
 
9
 
10
 
11
 
12
 
13
 
14
 
15
 
16
 
17
 
18
 
19
 
20
 
21
 
22
 
23
 
24
 
25
 
26
 
27
 
28
 
29
 
30
 
31
 
1
 
2
 
3
 
4
 
5
 
6
 

CAA/CALL Travel: Netherlands

  • Thu, May 28–Sat, Jun 06, 2026
Image
150th Anniversary Travel trip to the Netherlands
Around the World with ÃÛÌÒapp: 150th Anniversary Tour

ÃÛÌÒapp celebrates its 150th anniversary during the 2025–2026 school year, and our travel program is joining the celebration by exploring 10 countries across six continents. Join us as we commemorate ÃÛÌÒapp’s global reach with an exciting line-up of tours.

Highlights

  • Amsterdam canal cruise
  • Haarlem walking tour
  • Delft Blue Factory and Museum
  • Stroopwaffle-baking workshop
  • Cheese farm visit
  • Kröller-Müller Museum
  • Giethoorn
  • Eise Eisinga Planetarium
  • Hindeloopen, Leeuwarden, Sneek
  • Wadden Center and Zuiderzee Museum
  • Holocaust Museum

Tour Host

Jeff Haverdink, executive director of alumni and family engagement, will be the ÃÛÌÒapp host for this tour, partnering with a tour manager from Witte Travel’s Amsterdam office.

Pricing

  • $4,995 double occupancy 
  • $5,765 single occupancy

Tour flights depart from Grand Rapids. Flights from other cities can be arranged for an additional $75 fee (and possibly difference in airfare); note this on your registration and Witte Travel can provide assistance after booking.

Travel insurance is available through TravelEx for an additional fee; please .

More Information

Available by early July: Download the tour brochure (PDF) for a complete itinerary and full tour details. Register online via Witte Travel.

ÃÛÌÒapp tours are open to any friends of CALL and the ÃÛÌÒapp Alumni Association who wish to travel with us. Explore other ÃÛÌÒapp-sponsored tours, too!