I recorded a profile and found that most time is spent in time "forEachAvailabilityInterval" function. I checked your data and found some terribly wrong dates.
> this.graph.project.eventStore.map(r => r).filter(r => r.startDate.getFullYear() > 2100).map(r => [r.id, r.startDate.toGMTString(), r.endDate.toGMTString()])
[
[
"a220p000000oVtbAAE",
"Fri, 31 Dec 3999 15:00:00 GMT",
"Wed, 31 Dec 1969 15:00:00 GMT"
],
[
"a220p000000oVtaAAE",
"Fri, 31 Dec 3999 15:00:00 GMT",
"Wed, 31 Dec 1969 15:00:00 GMT"
],
[
"a220p000000oVtZAAU",
"Fri, 31 Dec 3999 15:00:00 GMT",
"Wed, 31 Dec 1969 15:00:00 GMT"
],
[
"a220p000000oVdHAAU",
"Fri, 31 Dec 3999 15:00:00 GMT",
"Wed, 31 Dec 1969 15:00:00 GMT"
],
[
"a220p000000oVdGAAU",
"Fri, 31 Dec 3999 15:00:00 GMT",
"Wed, 31 Dec 1969 15:00:00 GMT"
]
]
So, first end date is before start and start is the year 4000. There could be more such data in larger dataset, this is what I get for 1k records.
Please check your data to make sure start is always before the end