diff --git a/docs/_static/class_register_with_seating_plan.png b/docs/_static/class_register_with_seating_plan.png
new file mode 100644
index 0000000000000000000000000000000000000000..eef490cdd0ba9cc19ccee85ffd7c30bb655dfcdd
Binary files /dev/null and b/docs/_static/class_register_with_seating_plan.png differ
diff --git a/docs/_static/class_register_without_seating_plan.png b/docs/_static/class_register_without_seating_plan.png
new file mode 100644
index 0000000000000000000000000000000000000000..8228839d34d3dec2d5302f5d21fae31556991c6f
Binary files /dev/null and b/docs/_static/class_register_without_seating_plan.png differ
diff --git a/docs/_static/edit_seating_plan.png b/docs/_static/edit_seating_plan.png
new file mode 100644
index 0000000000000000000000000000000000000000..576a4efaf3791d583291cacb68373040e6641aef
Binary files /dev/null and b/docs/_static/edit_seating_plan.png differ
diff --git a/docs/_static/seating_plans.png b/docs/_static/seating_plans.png
new file mode 100644
index 0000000000000000000000000000000000000000..64a995048c49ebb3b4aa164f900f6b0a6bc435a8
Binary files /dev/null and b/docs/_static/seating_plans.png differ
diff --git a/docs/_static/view_seating_plan.png b/docs/_static/view_seating_plan.png
new file mode 100644
index 0000000000000000000000000000000000000000..3f19eb01c977b611e5d0ef1279d370630af527c8
Binary files /dev/null and b/docs/_static/view_seating_plan.png differ
diff --git a/docs/admin/00_index.rst b/docs/admin/00_index.rst
new file mode 100644
index 0000000000000000000000000000000000000000..0411892d4e6ce2a649755a4d40787693660d0c3c
--- /dev/null
+++ b/docs/admin/00_index.rst
@@ -0,0 +1,7 @@
+Seating plan administration
+===========================
+
+.. toctree::
+   :glob:
+
+   *
diff --git a/docs/admin/10_permissions.rst b/docs/admin/10_permissions.rst
new file mode 100644
index 0000000000000000000000000000000000000000..9b84c77ea589f79696c277724f7e8e8ae90d705e
--- /dev/null
+++ b/docs/admin/10_permissions.rst
@@ -0,0 +1,22 @@
+Permissions
+===========
+
+Group owners can always view, create, edit and delete seating plans
+for their groups. Also, they can view plans of parent groups.
+
+The ``Seating plans`` menu entry is only displayed, when at least
+one seating plan can be viewed by a person.
+
+To give persons who are not group owners permissions, use the following:
+
+* **stoelindeling.view_seatingplan**: Global or orbject permission to
+  view all seating plans or a specific one
+* **stoelindeling.add_seatingplan**: Global permission to create seating
+  plans
+* **stoelindeling.change_seatingplan**: Global or object permission to
+  edit all seating plans or a specific one
+* **stoelindeling.delete_seatingplan**: Global or object permission to
+  delete all seating plans or a specific one
+
+Persons with the global permission **stoelindeling.add_seatingplan** are
+also allowed to view the list of all seating plans.
diff --git a/docs/index.rst b/docs/index.rst
index d988a94257dab598220d8186a066974944b29c70..f0f0ce91a95bc7304f9c929b1034de8748de6c56 100644
--- a/docs/index.rst
+++ b/docs/index.rst
@@ -10,6 +10,9 @@ Welcome to AlekSIS-App-Stoelindelings documentation!
    :maxdepth: 2
    :caption: Contents:
 
+   user/00_index
+   admin/00_index
+
 Indices and tables
 ==================
 
diff --git a/docs/user/00_index.rst b/docs/user/00_index.rst
new file mode 100644
index 0000000000000000000000000000000000000000..7dcc64d67383719df37627bebabc7666f1de70b2
--- /dev/null
+++ b/docs/user/00_index.rst
@@ -0,0 +1,7 @@
+Using seating plans
+===================
+
+.. toctree::
+   :glob:
+
+   *
diff --git a/docs/user/10_seating_plans.rst b/docs/user/10_seating_plans.rst
new file mode 100644
index 0000000000000000000000000000000000000000..dfa993c1ab43feb5cb359f466fc8ce09c8d9617d
--- /dev/null
+++ b/docs/user/10_seating_plans.rst
@@ -0,0 +1,26 @@
+Managing seating plans
+======================
+
+A seating plan is always linked to a combination of ``Group`` and ``Room``. Additionally,
+a ``Subject`` can be specified. When a group, e.g. a class, has a seating plan without a subject,
+all subgroups, e.g. a course of that class, will inherit that plan, as long as
+they do not have their own seating plan. More specific relations precede more general ones,
+so if there exists a plan for group 5a and one for group 5a with subject English, the latter will be shown.
+All seating plans can be viewed, edited and created under ``Seating plans`` in the navigation.
+
+.. image:: ../_static/seating_plans.png
+   :alt: Seating plans overview
+
+To create a new seating plan, click on ``Create seating plan``.
+Select a group, subject and room and continue to the seat arrangement page.
+There you can use drag-and-drop to place available persons in the grid at the bottom.
+Extend the size of the plan, if necessary, using the expand buttons at each edge.
+
+.. image:: ../_static/edit_seating_plan.png
+   :alt: Edit a seating plan
+
+Seating plans can be viewed by clicking on their name in the overview, where they can
+also be edited or deleted.
+
+.. image:: ../_static/view_seating_plan.png
+   :alt: View a seating plan
diff --git a/docs/user/20_alsijil_integration.rst b/docs/user/20_alsijil_integration.rst
new file mode 100644
index 0000000000000000000000000000000000000000..947bb43879fc4ef7e7cc94ff10db372373d987fd
--- /dev/null
+++ b/docs/user/20_alsijil_integration.rst
@@ -0,0 +1,15 @@
+Integration with class register
+===============================
+
+When the class register functionality of AlekSIS is used, there will be
+a tab for seating plans on lesson documentation pages.
+
+.. image:: ../_static/class_register_with_seating_plan.png
+   :alt: Lesson documentation with seating plan
+
+If there is no seating plan for a lesson, i.e. no one for that specific
+combination of ``Group``, ``Room`` and ``Subject``, no one for the combination
+of ``Group`` and ``Room`` and if none of the parent groups has one, options
+for creating a seating plan are displayed.
+
+.. image:: ../_static/class_register_without_seating_plan.png