Instead of manually handling every single widget, simply sync the GtkWidget:sensitive property of the topmost box.
calendars-list