diff --git a/Doc/library/contextvars.rst b/Doc/library/contextvars.rst
index 9c7ea2b..8805661 100644
--- a/Doc/library/contextvars.rst
+++ b/Doc/library/contextvars.rst
@@ -48,6 +48,8 @@
 
       The name of the variable.  This is a read-only property.
 
+      .. versionadded:: 3.7.1
+
    .. method:: get([default])
 
       Return a value for the context variable for the current context.
diff --git a/Lib/test/test_context.py b/Lib/test/test_context.py
index 74d05fc..efd7319 100644
--- a/Lib/test/test_context.py
+++ b/Lib/test/test_context.py
@@ -30,8 +30,13 @@
         with self.assertRaisesRegex(TypeError, 'must be a str'):
             contextvars.ContextVar(1)
 
-        c = contextvars.ContextVar('a')
-        self.assertNotEqual(hash(c), hash('a'))
+        c = contextvars.ContextVar('aaa')
+        self.assertEqual(c.name, 'aaa')
+
+        with self.assertRaises(AttributeError):
+            c.name = 'bbb'
+
+        self.assertNotEqual(hash(c), hash('aaa'))
 
     def test_context_var_new_2(self):
         self.assertIsNone(contextvars.ContextVar[int])
diff --git a/Misc/NEWS.d/next/Core and Builtins/2018-06-27-18-56-41.bpo-33985.ILJ3Af.rst b/Misc/NEWS.d/next/Core and Builtins/2018-06-27-18-56-41.bpo-33985.ILJ3Af.rst
new file mode 100644
index 0000000..07c8f90
--- /dev/null
+++ b/Misc/NEWS.d/next/Core and Builtins/2018-06-27-18-56-41.bpo-33985.ILJ3Af.rst
@@ -0,0 +1 @@
+Implement contextvars.ContextVar.name attribute.
diff --git a/Python/context.c b/Python/context.c
index b727748..8ee048c 100644
--- a/Python/context.c
+++ b/Python/context.c
@@ -940,6 +940,10 @@
     Py_RETURN_NONE;
 }
 
+static PyMemberDef PyContextVar_members[] = {
+    {"name", T_OBJECT, offsetof(PyContextVar, var_name), READONLY},
+    {NULL}
+};
 
 static PyMethodDef PyContextVar_methods[] = {
     _CONTEXTVARS_CONTEXTVAR_GET_METHODDEF
@@ -955,6 +959,7 @@
     "ContextVar",
     sizeof(PyContextVar),
     .tp_methods = PyContextVar_methods,
+    .tp_members = PyContextVar_members,
     .tp_dealloc = (destructor)contextvar_tp_dealloc,
     .tp_getattro = PyObject_GenericGetAttr,
     .tp_flags = Py_TPFLAGS_DEFAULT | Py_TPFLAGS_HAVE_GC,
