diff --git a/data/ui/calendar-row.ui b/data/ui/calendar-row.ui
index d2770a40..b1893648 100644
--- a/data/ui/calendar-row.ui
+++ b/data/ui/calendar-row.ui
@@ -53,6 +53,22 @@
0
+
+
+
+
+
+ 2
+ 0
+ 2
+
+
diff --git a/src/gui/calendar-management/gcal-calendars-page.c b/src/gui/calendar-management/gcal-calendars-page.c
index b4daebe7..01832de7 100644
--- a/src/gui/calendar-management/gcal-calendars-page.c
+++ b/src/gui/calendar-management/gcal-calendars-page.c
@@ -79,6 +79,7 @@ make_calendar_row (GcalCalendarsPage *self,
GtkWidget *top_label;
GtkWidget *icon;
GtkWidget *row;
+ GtkWidget *sw;
manager = gcal_context_get_manager (self->context);
get_source_parent_name_color (manager, gcal_calendar_get_source (calendar), &parent_name, NULL);
@@ -113,6 +114,10 @@ make_calendar_row (GcalCalendarsPage *self,
icon,
0);
+ /* visibility switch */
+ sw = GTK_WIDGET (gtk_builder_get_object (builder, "switch"));
+ g_object_bind_property (calendar, "visible", sw, "active", G_BINDING_BIDIRECTIONAL | G_BINDING_SYNC_CREATE);
+
/* parent source name label */
bottom_label = GTK_WIDGET (gtk_builder_get_object (builder, "subtitle"));
gtk_label_set_label (GTK_LABEL (bottom_label), parent_name);