code: def serveUpcoming(self, request):
          
          myurl = self.get_url(request)
          today = timezone.localdate()
          monthlyUrl = myurl + self.reverse_subpage('serveMonth',
                                                    args=[today.year, today.month])
          weekNum = gregorian_to_week_date(today)[1]
          weeklyUrl = myurl + self.reverse_subpage('serveWeek',
                                                   args=[today.year, weekNum])
          listUrl = myurl + self.reverse_subpage('servePast')
          upcomingEvents = self._getUpcomingEvents(request)
          paginator = Paginator(upcomingEvents, self.EventsPerPage)
          try:
              eventsPage = paginator.page(request.GET.get('page'))
          except PageNotAnInteger:
              eventsPage = paginator.page(1)
          except EmptyPage:
              eventsPage = paginator.page(paginator.num_pages)
  
          # TODO Consider changing to a TemplateResponse
          # https://stackoverflow.com/questions/38838601
          return render(request, "joyous/calendar_list_upcoming.html",
                        {'self':         self,
                         'page':         self,
                         'version':      __version__,
                         'today':        today,
                         'weeklyUrl':    weeklyUrl,
                         'monthlyUrl':   monthlyUrl,
                         'listUrl':      listUrl,
                         'events':       eventsPage})
docs: Upcoming events list view.