diff --git a/frontend/src/components/ScheduleBlock.vue b/frontend/src/components/ScheduleBlock.vue
index 7c687fb..da5006f 100644
--- a/frontend/src/components/ScheduleBlock.vue
+++ b/frontend/src/components/ScheduleBlock.vue
@@ -12,7 +12,12 @@
{{ block.label || subjectName || 'Block' }}
- {{ block.time_start }} – {{ block.time_end }}
+
+ {{ block.time_start }} – {{ block.time_end }}
+
+ · {{ durationLabel }}
+
+
✓
▶
@@ -31,6 +36,19 @@ const props = defineProps({
const subjectColor = computed(() => props.block.subject?.color || '#475569')
const subjectName = computed(() => props.block.subject?.name || null)
+
+const durationLabel = computed(() => {
+ if (props.block.duration_minutes != null) return `${props.block.duration_minutes} min`
+ const start = props.block.time_start
+ const end = props.block.time_end
+ if (start && end) {
+ const [sh, sm] = start.split(':').map(Number)
+ const [eh, em] = end.split(':').map(Number)
+ const mins = (eh * 60 + em) - (sh * 60 + sm)
+ if (mins > 0) return `${mins} min`
+ }
+ return ''
+})