diff --git a/ietf/meeting/helpers.py b/ietf/meeting/helpers.py
index e283f76db..8fb35bf22 100644
--- a/ietf/meeting/helpers.py
+++ b/ietf/meeting/helpers.py
@@ -129,12 +129,19 @@ def get_meeting(num=None,type_in=['ietf',]):
     else:
         raise Http404("No such meeting found: %s" % num)
 
+def get_current_ietf_meeting():
+    meetings = Meeting.objects.filter(type='ietf',date__gte=datetime.datetime.today()-datetime.timedelta(days=31)).order_by('date')
+    return meetings.first()
+
+def get_current_ietf_meeting_num():
+    return get_current_ietf_meeting().number
+
 def get_ietf_meeting(num=None):
     if num:
-        meetings = Meeting.objects.filter(number=num)
+        meeting = Meeting.objects.filter(number=num).first()
     else:
-        meetings = Meeting.objects.filter(type='ietf',date__gte=datetime.datetime.today()-datetime.timedelta(days=31)).order_by('date')
-    return meetings.first()
+        meeting = get_current_ietf_meeting()
+    return meeting
 
 def get_schedule(meeting, name=None):
     if name is None:
diff --git a/ietf/meeting/views.py b/ietf/meeting/views.py
index 849298b0b..698b50ca9 100644
--- a/ietf/meeting/views.py
+++ b/ietf/meeting/views.py
@@ -44,7 +44,7 @@ from django.views.decorators.cache import cache_page
 from django.utils.html import format_html
 from django.views.decorators.csrf import ensure_csrf_cookie, csrf_exempt
 from django.views.generic import RedirectView
-
+from django.core.cache import caches
 
 from ietf.doc.fields import SearchableDocumentsField
 from ietf.doc.models import Document, State, DocEvent, NewRevisionDocEvent, DocAlias
@@ -61,7 +61,8 @@ from ietf.meeting.helpers import build_all_agenda_slices, get_wg_name_list
 from ietf.meeting.helpers import get_all_assignments_from_schedule
 from ietf.meeting.helpers import get_modified_from_assignments
 from ietf.meeting.helpers import get_wg_list, find_ads_for_meeting
-from ietf.meeting.helpers import get_meeting, get_schedule, schedule_permissions, get_ietf_meeting
+from ietf.meeting.helpers import get_meeting, get_ietf_meeting, get_current_ietf_meeting_num
+from ietf.meeting.helpers import get_schedule, schedule_permissions
 from ietf.meeting.helpers import preprocess_assignments_for_agenda, read_agenda_file
 from ietf.meeting.helpers import convert_draft_to_pdf, get_earliest_session_date
 from ietf.meeting.helpers import can_view_interim_request, can_approve_interim_request
@@ -902,6 +903,12 @@ def agenda(request, num=None, name=None, base=None, ext=None, owner=None, utc=""
         else:
             raise Http404("No such meeting")
 
+    if name == None and owner == None:
+        cache_key = ("meeting:%s:%s%s" % (meeting.number, base, ext))[:228]
+        rendered_page = caches['slowpages'].get(cache_key)
+        if rendered_page:
+            return rendered_page
+
     if name is None:
         schedule = get_schedule(meeting, name)
     else:
@@ -943,14 +950,26 @@ def agenda(request, num=None, name=None, base=None, ext=None, owner=None, utc=""
 
         p.group_list.sort(key=lambda g: g.acronym)
 
-    return render(request, "meeting/"+base+ext, {
+    rendered_page = render(request, "meeting/"+base+ext, {
         "schedule": schedule,
         "filtered_assignments": filtered_assignments,
         "updated": updated,
         "group_parents": group_parents,
         "now": datetime.datetime.now(),
+        "is_current_meeting": bool(num == get_current_ietf_meeting_num()),
     }, content_type=mimetype[ext])
 
+    # If the agenda is for the current meeting, only cache for 2 minutes
+    if name == None and owner == None:
+        cache_key = ("meeting:%s:%s%s" % (meeting.number, base, ext))[:228]
+        if meeting.number == get_current_ietf_meeting_num():
+            timeout = 60 * 2
+        else:
+            timeout = 60 * 60 * 24
+        caches['slowpages'].set(cache_key, rendered_page, timeout)
+
+    return rendered_page
+
 def agenda_csv(schedule, filtered_assignments):
     response = HttpResponse(content_type="text/csv; charset=%s"%settings.DEFAULT_CHARSET)
     writer = csv.writer(response, delimiter=str(','), quoting=csv.QUOTE_ALL)
diff --git a/ietf/templates/meeting/agenda.html b/ietf/templates/meeting/agenda.html
index 8897ae8e0..fce7b0286 100644
--- a/ietf/templates/meeting/agenda.html
+++ b/ietf/templates/meeting/agenda.html
@@ -44,15 +44,13 @@
   </div>
   <div class="row">
      <div class="col-md-10">
-      {# cache this part for 5 minutes -- it takes 3-6 seconds to generate #}
-      {% load cache %}
-      {% cache 300 ietf_meeting_agenda_utc schedule.meeting.number request.path %}
-
         <h1>Agenda</h1>
 
+    {% if is_current_meeting %}
 	<p class="alert alert-info">
 	  <b>Note:</b> IETF agendas are subject to change, up to and during a meeting.
 	</p>
+    {% endif %}
 
   {% if schedule.meeting.agenda_info_note %}
     <p class="alert alert-info">
@@ -353,7 +351,6 @@
     </div>
   </div>
 
-      {% endcache %}
 {% endblock %}
 
 {% block js %}