diff --git a/biscuit/apps/chronos/models.py b/biscuit/apps/chronos/models.py
index 456f2669382e744dcdc1dac866455ebc08eb2900..bb1328e4153564fe7053d48e1152b74482436a4b 100644
--- a/biscuit/apps/chronos/models.py
+++ b/biscuit/apps/chronos/models.py
@@ -1,3 +1,4 @@
+from django.core import validators
 from django.db import models
 from django.utils.translation import ugettext_lazy as _
 
@@ -22,3 +23,18 @@ class TimePeriod(models.Model):
 
     def __str__(self):
         return '%s, %d. period (%s - %s)' % (self.weekday, self.period, self.time_start, self.time_end)
+
+
+class Subject(models.Model):
+    abbrev = models.CharField(verbose_name=_(
+        'Abbreviation of subject in timetable'), max_length=10)
+    name = models.CharField(verbose_name=_(
+        'Long name of subject'), max_length=30)
+
+    colour_fg = models.CharField(verbose_name=_('Foreground colour in timetable'), blank=True, validators=[
+                                 validators.RegexValidator(r'#[0-9A-F]{6}')])
+    colour_bg = models.CharField(verbose_name=_('Background colour in timetable'), blank=True, validators=[
+                                 validators.RegexValidator(r'#[0-9A-F]{6}')])
+
+    def __str__(self):
+        return '%s - %s' % (self.abbrev, self.name)