diff --git a/aleksis/apps/alsijil/frontend/components/Coursebook.vue b/aleksis/apps/alsijil/frontend/components/Coursebook.vue
index 9efbcfa07b2576bcb739ead07c0a405fdfc21afc..961367a41396c7ee6f82b86d45190ea643db68b8 100644
--- a/aleksis/apps/alsijil/frontend/components/Coursebook.vue
+++ b/aleksis/apps/alsijil/frontend/components/Coursebook.vue
@@ -43,11 +43,16 @@ export default {
   props: {
     // Either as props OR route params
     // TODO: Remove default?
-    courseId: {
+    objId: {
       type: [Number, String],
       required: false,
       default: 0,
     },
+    objType: {
+      type: String,
+      required: false,
+      default: "group",
+    },
     // Next two in ISODate
     dateStart: {
       type: String,
@@ -69,7 +74,8 @@ export default {
     gqlQueryArgs() {
       return {
         // Assure courseId is a number
-        courseId: Number(this.courseId),
+        objId: Number(this.objId),
+        objType: this.objType.toUpperCase(),
         dateStart: this.dateStart,
         dateEnd: this.dateEnd,
       };
diff --git a/aleksis/apps/alsijil/frontend/components/coursebook.graphql b/aleksis/apps/alsijil/frontend/components/coursebook.graphql
index 2986bf96b5df99c937835a2a0102eba4e35f0d28..e2fb931a30146009d288086ca8cc3ac772af0e4b 100644
--- a/aleksis/apps/alsijil/frontend/components/coursebook.graphql
+++ b/aleksis/apps/alsijil/frontend/components/coursebook.graphql
@@ -1,5 +1,5 @@
-query gqlDocumentationsForCoursebook($courseId: ID!, $dateStart: Date!, $dateEnd: Date!) {
-  items: documentationsForCoursebook(courseId: $courseId, dateStart: $dateStart, dateEnd: $dateEnd) {
+query gqlDocumentationsForCoursebook($objId: ID!, $objType: String!, $dateStart: Date!, $dateEnd: Date!) {
+  items: documentationsForCoursebook(objId: $objId, objType: $objType, dateStart: $dateStart, dateEnd: $dateEnd) {
     id
     course {
       id
diff --git a/aleksis/apps/alsijil/frontend/index.js b/aleksis/apps/alsijil/frontend/index.js
index fe62f3a331a29295380d5e33fd235364a978585c..aff43c39a20e2e398ba0b1a5542ed833a5af6a9a 100644
--- a/aleksis/apps/alsijil/frontend/index.js
+++ b/aleksis/apps/alsijil/frontend/index.js
@@ -394,19 +394,20 @@ export default {
       },
     },
     {
-      path: "coursebook/:courseId(\\d+)/",
+      path: "coursebook/:objType(group|course|teacher)/:objId(\\d+)/",
       component: () => import("./components/Coursebook.vue"),
       redirect: to => {
         console.log('redirect to', to);
-        return { name: "alsijil.coursebook_by_course_id_and_date",
+        return { name: "alsijil.coursebook_by_obj_id_and_date",
                  params: {
-                   courseId: to.params.courseId,
+                   objType: to.params.objType,
+                   objId: to.params.objId,
                    dateStart: DateTime.now().toISODate(),
                    dateEnd: DateTime.now().plus({ weeks: 1 }).toISODate(),
                  },
                };
       },
-      name: "alsijil.coursebook_by_course_id",
+      name: "alsijil.coursebook_by_obj_id",
       props: true,
       meta: {
         inMenu: true,
diff --git a/aleksis/apps/alsijil/schema/__init__.py b/aleksis/apps/alsijil/schema/__init__.py
index e325627b6895dcfa16a040eea9ed6c1b4b468e36..c407a6eff1a0ca6d9def074301bbd69cb0491efe 100644
--- a/aleksis/apps/alsijil/schema/__init__.py
+++ b/aleksis/apps/alsijil/schema/__init__.py
@@ -23,7 +23,8 @@ class Query(graphene.ObjectType):
     )
     documentations_for_coursebook = FilterOrderList(
         DocumentationType,
-        course_id = graphene.ID(required=True),
+        obj_type = graphene.String(required=True),
+        obj_id = graphene.ID(required=True),
         date_start=graphene.Date(required=True),
         date_end=graphene.Date(required=True),
     )
@@ -34,12 +35,11 @@ class Query(graphene.ObjectType):
         )
         return documentations
 
-    def resolve_documentations_for_coursebook(root, info, course_id, date_start, date_end, **kwargs):
+    def resolve_documentations_for_coursebook(root, info, obj_type, obj_id, date_start, date_end, **kwargs):
         datetime_start = datetime.combine(date_start, datetime.min.time())
         datetime_end = datetime.combine(date_end, datetime.max.time())
 
-        # TODO: later on, allow getting documentations for other types than courses, e.g. groups or persons
-        return Documentation.get_for_coursebook("COURSE", course_id, datetime_start, datetime_end, info.context)
+        return Documentation.get_for_coursebook(obj_type, obj_id, datetime_start, datetime_end, info.context)
 
 
 class Mutation(graphene.ObjectType):