Because you are using Knockout there is no need to manually get the values from the controls you can just use the values presented in the viewmodel to calculate the end date with:
this.computedEndDate = ko.computed(function () {
var period = this.eventPeriod();
var newMonth = this.eventStartDate().getMonth() + period;
var endDate = new Date(this.eventStartDate());
endDate.setMonth(newMonth);
return endDate;
}, this);
Demo JSFiddle.
Anyway your original approach wouldn't work because the KO change tracking only works with observables so your original computed does not get updated when you change the inputs.
In order to also trigger the change also with the spinner buttons is not supported out of the box by KO-Kendo. However you can recreate the kendoNumericTextBox
which can also listen to the spin
event:
Demo JSFiddle.