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.