diff --git a/aleksis/core/forms.py b/aleksis/core/forms.py
index 13d6011de02793649bd8e83250871eaf6e4b31ec..5bcb8233968f1468aa0962100415ae484f23bd1b 100644
--- a/aleksis/core/forms.py
+++ b/aleksis/core/forms.py
@@ -3,6 +3,7 @@ from typing import Any, Callable, Dict, Sequence
 
 from django import forms
 from django.conf import settings
+from django.contrib.auth import get_user_model
 from django.contrib.auth.models import Permission
 from django.contrib.sites.models import Site
 from django.core.exceptions import ValidationError
@@ -11,7 +12,6 @@ from django.http import HttpRequest
 from django.utils.translation import gettext_lazy as _
 
 from allauth.account.forms import SignupForm
-from allauth.account.utils import get_user_model
 from dj_cleavejs import CleaveWidget
 from django_select2.forms import ModelSelect2MultipleWidget, ModelSelect2Widget, Select2Widget
 from dynamic_preferences.forms import PreferenceForm
diff --git a/aleksis/core/urls.py b/aleksis/core/urls.py
index 0354e90073741904c7f2529200b75de46736dc8c..4994369797a56bf8e58f641b737d1afa928d0347 100644
--- a/aleksis/core/urls.py
+++ b/aleksis/core/urls.py
@@ -62,6 +62,7 @@ urlpatterns = [
     path("person/<int:id_>/", views.person, name="person_by_id"),
     path("person/<int:pk>/edit/", views.EditPersonView.as_view(), name="edit_person_by_id"),
     path("person/<int:id_>/delete/", views.delete_person, name="delete_person_by_id"),
+    path("person/<int:id_>/invite/", views.invite_person, name="invite_person_by_id"),
     path("groups", views.groups, name="groups"),
     path("groups/additional_fields", views.additional_fields, name="additional_fields"),
     path("groups/child_groups/", views.groups_child_groups, name="groups_child_groups"),
diff --git a/aleksis/core/views.py b/aleksis/core/views.py
index dee66344d3b98b14541b2793741a3c6caaf8b5bd..bba9558c4d98e3bbbdb140171f9172a123777f48 100644
--- a/aleksis/core/views.py
+++ b/aleksis/core/views.py
@@ -1404,3 +1404,16 @@ class AccountRegisterView(SignupView):
         kwargs = super(AccountRegisterView, self).get_form_kwargs()
         kwargs["request"] = self.request
         return kwargs
+
+
+def invite_person_by_id(request: HttpRequest, id_: int) -> HttpResponse:
+    context = {}
+
+    person = Person.objects.get(id=id_)
+
+    invite = PersonInvitation.objects.create(
+        inviter=request.user,
+        person=person,
+        email=person.email,
+    )
+    invite.send_invitation()