I recommend following the Angular Scheduler Zoom tutorial which includes a working Angular project where everything works fine:
https://code.daypilot.org/12302/angular-scheduler-zoom
In particular, you shouldn't mix the direct API and the config/events attributes (automatic change detection).
You can either invoke the change by modifying the config object:
this.config.zoom = 1;
This will reload the Scheduler with the new config, and use the events specified using the [events] attribute.
Calling update() will reload the Scheduler without reapplying changes from [config] and [events]:
this.scheduler.control.update();
The events can disappear if you load events using the direct API and then change the config object. By changing the config object you force it to reload the event data from the [events] attribute:
this.scheduler.control.update({events: [ /* ... */]});
this.config.zoom = 1;