Your WebID needs to point to your availability calendar using the https://data.knows.idlab.ugent.be/person/office/#hasAvailabilityCalendar.
For example, this is what you find in Pieter Heyvaert's WebID.
@prefix knows: <https://data.knows.idlab.ugent.be/person/office/#> .
@prefix schema: <http://schema.org/> .
<https://pieterheyvaert.com/#me>
knows:hasAvailabilityCalendar <https://pieterheyvaert.com/#availability-calendar> .
<https://pieterheyvaert.com/#availability-calendar>
schema:url "https://pheyvaer.pod.knows.idlab.ugent.be/availability" .
Your availability calendar needs events annotated by schema:Event. Each event needs at least a start and end date, annotated by schema:startDate and schema:endDate. For example, this is what you find in Pieter Heyvaert's availability calendar.
@prefix event: <https://pieterheyvaert.com/dummy/event/> .
@prefix schema: <http://schema.org/> .
<https://pieterheyvaert.com/dummy/calendar/Availability%20of%20Pieter%20Heyvaert>
schema:event event:0bcdd7ee585119f93b4ee5574c9c4275,
event:0f0cfa3c54d8cbdaf81e796ca2669fa1>;
schema:name "Availability of Pieter Heyvaert" .
event:0bcdd7ee585119f93b4ee5574c9c4275 a schema:Event;
schema:endDate "2022-03-21T15:00:00.000Z";
schema:name "Available for meetings";
schema:startDate "2022-03-21T14:30:00.000Z" .
event:0f0cfa3c54d8cbdaf81e796ca2669fa1 a schema:Event;
schema:endDate "2022-03-23T13:30:00.000Z";
schema:name "Available for meetings";
schema:startDate "2022-03-23T13:00:00.000Z" .
Your WebID needs to point to your vacation calendar using the https://data.knows.idlab.ugent.be/person/office/#hasVacationCalendar.
For example, this is what you find in Pieter Heyvaert's WebID.
@prefix knows: <https://data.knows.idlab.ugent.be/person/office/#> .
<https://pieterheyvaert.com/#me>
knows:hasAvailabilityCalendar <https://pheyvaer.pod.knows.idlab.ugent.be/vacation-calendar#> .
Your vacation calendar needs days annotated by knows:VacationDay.
Each day needs at least a date and part of day,
annotated by knows:date and knows:partOfDay.
For example, this is what you find in Pieter Heyvaert's vacation calendar.
@prefix knows: <https://data.knows.idlab.ugent.be/person/office/#> .
<https://pheyvaer.pod.knows.idlab.ugent.be/vacation-calendar#>
a knows:VacationCalender;
knows:days [
knows:date "2021-04-28";
knows:partOfDay knows:FullDay
], [
knows:date "2022-05-02";
knows:partOfDay knows:Morning
], [
knows:date "2022-06-02";
knows:partOfDay knows:Afternoon
].
CORS headers are completely under the control of the server where a WebID and POD are hosted. If there are issues with CORS headers, KNoodle can do nothing about them.
You find the source code in this GitHub repository.