diff --git a/aleksis/core/schema/__init__.py b/aleksis/core/schema/__init__.py
index fd9a930362f7890e62e907f25347500bfb34bd77..2c8358b4536cb71adff44c94e036ce02f8cc6333 100644
--- a/aleksis/core/schema/__init__.py
+++ b/aleksis/core/schema/__init__.py
@@ -72,6 +72,7 @@ class Query(graphene.ObjectType):
     person_by_id_or_me = graphene.Field(PersonType, id=graphene.ID())
 
     groups = graphene.List(GroupType)
+    group_by_id = graphene.Field(GroupType, id=graphene.ID())
 
     who_am_i = graphene.Field(UserType)
 
@@ -144,6 +145,19 @@ class Query(graphene.ObjectType):
     def resolve_groups(root, info, **kwargs):
         return get_objects_for_user(info.context.user, "core.view_group", Group)
 
+    @staticmethod
+    def resolve_group_by_id(root, info, id):
+        group = Group.objects.filter(id=id)
+
+        if len(group) != 1:
+            return None
+
+        group = group.first()
+
+        if not info.context.user.has_perm("core.view_group", group):
+            raise PermissionDenied()
+        return group
+
     def resolve_who_am_i(root, info, **kwargs):
         return info.context.user