diff --git a/AKModel/admin.py b/AKModel/admin.py
index 8c48c1ece0d8758dc583d61f6d94bb0ff6850638..ba2d8f15e8aa9e88fb06c6bf734697b913f33cf7 100644
--- a/AKModel/admin.py
+++ b/AKModel/admin.py
@@ -2,6 +2,7 @@
 
 from django.contrib import admin
 
-from AKModel.models import Event
+from AKModel.models import Event, AKOwner
 
 admin.site.register(Event)
+admin.site.register(AKOwner)
diff --git a/AKModel/models.py b/AKModel/models.py
index 05f5285777f6a4ae5fc63035a0c42da903530d15..397a7921bad4192fb04b7d576ec4053fc0d751ce 100644
--- a/AKModel/models.py
+++ b/AKModel/models.py
@@ -11,3 +11,20 @@ class Event(models.Model):
     end = models.DateTimeField(verbose_name='End', help_text='Time the event ends')
     place = models.CharField(max_length=128, verbose_name='Place', help_text='City etc. where the event takes place')
     active = models.BooleanField(verbose_name='Active State', help_text='Marks currently active events')
+
+
+class AKOwner(models.Model):
+    """ An AKOwner describes the person organizing/holding an AK.
+    """
+    name = models.CharField(max_length=256, verbose_name='Nickname', help_text='Name used to identify an AK owner')
+    email = models.EmailField(max_length=128, blank=True, verbose_name='E-Mail Address', help_text='Contact e-mail')
+    institution = models.CharField(max_length=128, blank=True, verbose_name='Institution', help_text='University etc.')
+    link = models.URLField(blank=True, verbose_name='Web Link', help_text='Link to Homepage')
+
+    event = models.ForeignKey(to=Event, on_delete=models.CASCADE, verbose_name='Event', help_text='Matching event')
+
+    class Meta:
+        verbose_name = 'AK Owner'
+        verbose_name_plural = 'AK Owners'
+        ordering = ['name']
+        unique_together = [['name', 'institution']]