Whoa there!

You are using an outdated browser. Please upgrade your browser or use a different browser to improve your experience.

Youth Programs

Kids & Adults                                                                                                                                               207.824.5959

The Sunday River SnowSports School's Seasonal Programs for kids and adults offers fun ways for all ages and abilities to spend their winter improving their skills. All Seasonal Programs listed below run from mid-December through late March on weekends and holidays.

View as Grid List
Sort by
Display per page

Mini Mogul Munchkins 30-Day Pass

A season-long ski program for ages 3-5 with 30 full-day lessons and lunch during the 2020-21 winter season. |
  •          Full-day schedule: 10AM-3PM, with lunch included.
  •          No reservation required.
  •          Drop off between lift opening and 9AM.
  •          30-day passes are transferable between siblings ages 3-12, and can be used for lessons on the same day.
  •          For skiers only.
$1,749.00

Mogul Munchkins 30-Day Pass

A season-long ski program for ages 6-7 with 30 full-day lessons and lunch during the 2020-21 winter season. |
  •          Full-day schedule: 10AM-3PM, with lunch included.
  •          No reservation required.
  •          Drop off between lift opening and 9AM.
  •          30-day passes are transferable between siblings ages 6-12, and can be used for lessons on the same day.
  •          For skiers only.
$1,549.00

Mogul Meisters 30-Day Pass (Ski or Snowboard)

A season-long ski or snowboard program for ages 8-12 with 30 full-day lessons and lunch during the 2020-21 winter season. |
  •          Full-day schedule: 10AM-3PM, with lunch included.
  •          No reservation required.
  •          Drop off between lift opening and 9AM.
  •          30-day passes are transferable between siblings ages 8-12, and can be used for lessons on the same day.
  •          For both skiers and snowboarders.
$1,349.00

Mini Runners

A season-long half-day ski program for ages 3-5. From first-timers to explorers of the entire mountain, Mini Runners is the perfect introduction into season-long skiing for your littlest tyke.|
  •          Participants of all abilities welcome. No prior skiing experience is necessary.
  •          Half-day schedule: 9AM-12PM; must be dropped-off before 8:45AM.
  •          Program begins for the season in mid-December.
$1,149.00

River Runners

A season-long ski program for ages 5-12. Your little ripper will be part of a team centered on their enthusiasm for skiing and fun.|
  •          Full-day schedule: 9AM-2PM; must be dropped-off before 8:45AM.
  •          Half-day schedule: 9AM-12PM; must be dropped-off before 8:45AM.
  •          Program begins for the season in mid-December.
  •          Participants must be able to ski independently, turning and stopping in control, on Sunday River’s green terrain. If they cannot, please check-out our 30-Day Passes as another option.
  •          Program does not included a season pass or lift ticket.

$1,449.00

8 Peaks

A season-long ski program for ages 13-17, 8 Peaks focuses on all-mountain adventure for advanced skiers.|
  •          Full-day schedule: 9-11AM and 12-2PM.
  •          Half-day schedule: 9AM-12PM.
  •          Program begins for the season in mid-December.
  •          Participants must be advanced, all-mountain skiers.
  •          Program does not included a season pass or lift ticket.
$1,399.00

Junior Professionals

A season-long ski program for ages 14-15, the Junior Professional Program is designed to prepare responsible teens for working in the ski industry as a PSIA-certified instructor. |
  •          Full-day schedule: 9-11AM and 12-2PM.
  •          Half-day schedule: 9AM-12PM.
  •          Program begins for the season in mid-December.
  •          Participants must be advanced, all-mountain skiers.
  •          Program does not included a season pass or lift ticket.

$1,399.00

Your Card Number can be found in the highlighted areas below:
resort pass

<script>// <![CDATA[ Vue.component('payment-details-schedule', { data: function () { return { monthlyPayment: 0, paymentTableHeaders: [ { text: 'Date', value: 'Date', align: 'center' }, { text: 'Amount', value: 'Amount', align: 'center' }, ], processing: false, showModal: false, paymentPlanProductIds: [], dates: null, paymentPrices: [], paymentDetails: [], paymentRemainder: 0, modalDescription: null, widgetDescription: null, totalPaymentPrice: 0, totalDeposit: 0 } }, template: '<div class="payment-plan-details" v-if="paymentDetails.length && isPaymentPlanProduct"> <p>Your remaining balance will be billed in 4 payments <span v-if="paymentRemainder == 0">of ${{ monthlyPayment.toFixed(2) }}</span>.<div v-if="widgetDescription">{{widgetDescription}}</div><span class="ax--btn ax--btn--secondary viewSchedule" @click="showModal = true">View Payment Schedule</span></p><ax-modal v-if="showModal" modalType="message" size="medium" @close="showModal = false"><template v-slot:header><h3>Payment Plan Schedule</h3><div>{{modalDescription}}</div><div>${{totalDeposit.toFixed(2)}} will be charged now. The remaining ${{totalPaymentPrice.toFixed(2)}} will be charged on the following schedule:</div></template><template v-slot:body><ax-loader v-if="processing" size="lg" position="fixed" loader-color="#222" /><ax-data-table v-if="!!paymentDetails.length" :allow-row-selection="false" break-width="large" :headers="paymentTableHeaders" :items="paymentDetails"/><div>Product total with deposit: ${{(totalPaymentPrice + totalDeposit).toFixed(2)}}</div></template></ax-modal></div>', created() { this.dates = window.datesArray this.paymentPrices = window.priceArray this.paymentPlanProductIds = window.productArray this.modalDescription = window.modalDescription this.widgetDescription = window.widgetDescription this.buildPaymentSchedule() }, computed: { productId() { return this.$store.getters['products/selectedProduct'].Id }, selectedAttributeValueIds() { return this.selectedAttributes .filter(function (attribute) { return !attribute.IsDisabled }) .map(function (obj) { return obj.SelectedValueId; }); }, selectedAttributes() { return this.$store.getters['products/selectedProductAttributes'] }, numberOfPayments() { return this.dates.length }, isPaymentPlanProduct() { let _this = this let foundProductId = this.paymentPlanProductIds.find(function (pid) { return pid === _this.productId; }); if (foundProductId){ return true } else { return false } }, }, methods: { buildPaymentSchedule() { this.paymentDetails = [] let paymentPriceRecord = null this.totalPaymentPrice = 0 this.totalDeposit = 0 //First we must determine which of the selected attributes have payment prices and calculate a total payment price for them let _this = this this.selectedAttributeValueIds.forEach(function (attributeId, index) { paymentPriceRecord = null paymentPriceRecord = _this.paymentPrices.filter(p => { return p.id.toString() === attributeId }) if (paymentPriceRecord && paymentPriceRecord.length > 0) { _this.totalPaymentPrice += paymentPriceRecord[0].paymentPrice _this.totalDeposit += paymentPriceRecord[0].deposit } }) if (_this.totalPaymentPrice > 0) { //Determine monthly payment let thisPayment = +(_this.totalPaymentPrice / _this.dates.length) _this.monthlyPayment = Math.floor(thisPayment * 100) / 100 //Determine if there is a remainder amount _this.paymentRemainder = +(_this.totalPaymentPrice - (_this.monthlyPayment * _this.dates.length)).toFixed(2) //Then we create payment record for each configured date _this.dates.forEach(function (paymentDate, index) { if (index === _this.dates.length - 1 && _this.paymentRemainder > 0) { let lastPayment = _this.monthlyPayment + _this.paymentRemainder _this.paymentDetails.push({ date: paymentDate, amount: `$${lastPayment.toFixed(2)}` }) } else { _this.paymentDetails.push({ date: paymentDate, amount: `$${_this.monthlyPayment.toFixed(2)}` }) } }) //Add a total amount row _this.paymentDetails.push({ date: '<b>TOTAL</b>', amount: `<b>$${_this.totalPaymentPrice.toFixed(2)}</b>` }) } }, }, watch: { selectedAttributeValueIds: { immediate: true, deep: false, handler(newValue, oldValue) { this.buildPaymentSchedule() }, }, } }) // ]]></script>