diff --git a/biscuit/apps/alsijil/forms.py b/biscuit/apps/alsijil/forms.py
index 8278d40e220bac51ba3ba033ab2615097058c87b..140e7407126d1408c9c03ff135bd01a698f5359b 100644
--- a/biscuit/apps/alsijil/forms.py
+++ b/biscuit/apps/alsijil/forms.py
@@ -53,7 +53,7 @@ PersonalNoteFormSet = forms.modelformset_factory(
 class AbsentExcusedForm(forms.Form):
     date_start = forms.DateField(label=_('Start date'), widget=forms.SelectDateWidget, initial=datetime.today())
     date_end = forms.DateField(label=_('End date'), widget=forms.SelectDateWidget, initial=datetime.today())
-    starting_lesson = forms.ChoiceField(label=_('Starting lesson'))
+    starting_lesson = forms.IntegerField(label=_('Starting lesson'))
     person = forms.ModelChoiceField(label=_('Person'), queryset=Person.objects.all(), widget=Select2Widget)
     absent = forms.BooleanField(label=_('Absent'))
     excused = forms.BooleanField(label=_('Excused'))
diff --git a/biscuit/apps/alsijil/views.py b/biscuit/apps/alsijil/views.py
index 3c59848861ef3863800f180b7e3a459ee6faa187..c31e5c8e1aba179dbf257bbd787415ce8b64e384 100644
--- a/biscuit/apps/alsijil/views.py
+++ b/biscuit/apps/alsijil/views.py
@@ -13,6 +13,7 @@ from biscuit.apps.chronos.models import LessonPeriod
 from biscuit.apps.chronos.util import CalendarWeek
 from biscuit.core.models import Group, Person
 from biscuit.core.decorators import admin_required
+from biscuit.core.util import messages
 
 from .forms import AbsentExcusedForm, LessonDocumentationForm, PersonalNoteFormSet, SelectForm
 from .models import LessonDocumentation
@@ -215,8 +216,20 @@ def absences_excuses(request: HttpRequest) -> HttpResponse:
     if request.method == 'POST':
         if manage_absence_form.is_valid():
             # Get person from form
-            person = Person.objects.get(id=manage_absence_form.cleaned_data['person'])
-
+            person = manage_absence_form.cleaned_data['person']
+
+            # Get dates and starting lesson
+            start_date = manage_absence_form.cleaned_data['date_start']
+            end_date = manage_absence_form.cleaned_data['date_end']
+            starting_lesson = manage_absence_form.cleaned_data['starting_lesson']
+
+            # Mark person as absent
+            day_list = []
+            delta = end_date - start_date
+            for i in range(delta.days+1):
+                day = start_date + timedelta(days=1)
+                person.mark_absent(day, absent=manage_absence_form.cleaned_data['absent'], excused=manage_absence_form.cleaned_data['excused'])
+                person.save()
 
             messages.success(request, _('The absence has been saved.'))
             return redirect(request, 'index.html')