diff --git a/Lib/calendar.py b/Lib/calendar.py
index 3828c43..7550d52 100644
--- a/Lib/calendar.py
+++ b/Lib/calendar.py
@@ -127,18 +127,18 @@
     return day1, ndays
 
 
-def monthlen(year, month):
+def _monthlen(year, month):
     return mdays[month] + (month == February and isleap(year))
 
 
-def prevmonth(year, month):
+def _prevmonth(year, month):
     if month == 1:
         return year-1, 12
     else:
         return year, month-1
 
 
-def nextmonth(year, month):
+def _nextmonth(year, month):
     if month == 12:
         return year+1, 1
     else:
@@ -207,13 +207,13 @@
         day1, ndays = monthrange(year, month)
         days_before = (day1 - self.firstweekday) % 7
         days_after = (self.firstweekday - day1 - ndays) % 7
-        y, m = prevmonth(year, month)
-        end = monthlen(y, m) + 1
+        y, m = _prevmonth(year, month)
+        end = _monthlen(y, m) + 1
         for d in range(end-days_before, end):
             yield y, m, d
         for d in range(1, ndays + 1):
             yield year, month, d
-        y, m = nextmonth(year, month)
+        y, m = _nextmonth(year, month)
         for d in range(1, days_after + 1):
             yield y, m, d
 
diff --git a/Misc/NEWS.d/next/Library/2019-08-04-11-47-58.bpo-28292.vkihH5.rst b/Misc/NEWS.d/next/Library/2019-08-04-11-47-58.bpo-28292.vkihH5.rst
new file mode 100644
index 0000000..478a1b0
--- /dev/null
+++ b/Misc/NEWS.d/next/Library/2019-08-04-11-47-58.bpo-28292.vkihH5.rst
@@ -0,0 +1,3 @@
+Mark calendar.py helper functions as being private.  The follows PEP 8
+guidance to maintain the style conventions in the module and it addresses a
+known case of user confusion.
