{"openapi":"3.0.3","info":{"description":"Experimental : Domino REST API CalDAV APIs","title":"HCL Domino REST API CalDAV extension APIs","version":"1.0.0","x-experimental":true},"servers":[{"description":"Actual Server","url":"https://frascati.projectkeep.io/api/caldav/v1"},{"description":"CalDAV API server","url":"/api/caldav/v1"}],"paths":{"/calendars/personal/{unid}.ics":{"delete":{"description":"Deletes a calendar entry from the user's personal calendar.","operationId":"deleteCalendarEntry","responses":{"204":{"description":"No Content - Entry deleted"},"400":{"$ref":"#/components/responses/400BadRequest"},"401":{"$ref":"#/components/responses/401Unauthorized"},"403":{"$ref":"#/components/responses/403Forbidden"},"404":{"$ref":"#/components/responses/404NotFound"},"412":{"description":"Precondition Failed - If-Match ETag does not match current resource"},"500":{"$ref":"#/components/responses/500InternalServerError"},"501":{"$ref":"#/components/responses/501NotImplemented"}},"security":[{"basic":[]},{"jwt":[]}],"summary":"Deletes a calendar entry","tags":["caldav"],"x-keep-version":1},"get":{"description":"Retrieves a calendar entry from the user's personal calendar as iCalendar content.","operationId":"getCalendarEntry","responses":{"200":{"description":"OK - Calendar entry returned","headers":{"ETag":{"description":"ETag of the resource","schema":{"type":"string"}}}},"304":{"description":"Not Modified - resource unchanged since If-None-Match ETag"},"400":{"$ref":"#/components/responses/400BadRequest"},"401":{"$ref":"#/components/responses/401Unauthorized"},"403":{"$ref":"#/components/responses/403Forbidden"},"404":{"$ref":"#/components/responses/404NotFound"},"500":{"$ref":"#/components/responses/500InternalServerError"},"501":{"$ref":"#/components/responses/501NotImplemented"}},"security":[{"basic":[]},{"jwt":[]}],"summary":"Retrieves a calendar entry","tags":["caldav"],"x-keep-version":1},"parameters":[{"description":"Calendar entry UID or filename (e.g., uuid.ics)","in":"path","name":"unid","required":true,"schema":{"type":"string"}}],"put":{"description":"Creates or updates a calendar entry in the user's personal calendar.","operationId":"putCalendarEntry","requestBody":{"content":{"text/calendar":{"schema":{"description":"iCalendar (RFC 5545) format","type":"string"}}},"required":true},"responses":{"201":{"description":"Created - Calendar entry created successfully","headers":{"ETag":{"description":"ETag of the created resource","schema":{"type":"string"}},"Location":{"description":"URI of the newly created calendar entry","schema":{"type":"string"}}}},"204":{"description":"No Content - Entry updated","headers":{"ETag":{"description":"ETag of the updated resource","schema":{"type":"string"}}}},"400":{"$ref":"#/components/responses/400BadRequest"},"401":{"$ref":"#/components/responses/401Unauthorized"},"403":{"$ref":"#/components/responses/403Forbidden"},"412":{"description":"Precondition Failed - If-Match ETag does not match current resource"},"500":{"$ref":"#/components/responses/500InternalServerError"},"501":{"$ref":"#/components/responses/501NotImplemented"}},"security":[{"basic":[]},{"jwt":[]}],"summary":"Creates or updates a calendar entry","tags":["caldav"],"x-keep-version":1}},"/whoami":{"get":{"description":"whoami endpoint to verify authentication","operationId":"getWhoami","responses":{"200":{"description":"OK"}},"security":[{"basic":[]},{"jwt":[]}],"summary":"Get whoami","tags":["caldav"],"x-keep-version":1}}},"components":{"responses":{"400BadRequest":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorMessage"}}},"description":"Invalid request. Shows up when submission is flaky:\n- Wrong authentication\n- Wrong content-type\n- Missing or wrong parameter types"},"401Unauthorized":{"content":{"application/json":{"examples":{"Unauthorized":{"value":{"message":"Invalid credentials or account locked","status":401}}},"schema":{"$ref":"#/components/schemas/ErrorMessage"}}},"description":"401 Unauthorized"},"403Forbidden":{"content":{"application/json":{"examples":{"Forbidden":{"value":{"message":"Nice try chap, ask before next time","status":403}}},"schema":{"$ref":"#/components/schemas/ErrorMessage"}}},"description":"Forbidden"},"404NotFound":{"content":{"application/json":{"examples":{"NotFound":{"value":{"message":"This is not the data you seek!","status":404}}},"schema":{"$ref":"#/components/schemas/ErrorMessage"}}},"description":"Content not found"},"405MethodNotAllowed":{"description":"Method not allowed"},"406NotAcceptable":{"content":{"application/json":{"examples":{"GenericRejection":{"value":{"details":"The haferlup needs left turning shrufti","message":"This is not a supported operation. Try again","status":406}}},"schema":{"$ref":"#/components/schemas/ErrorMessage"}}},"description":"Invalid operation - something got requested that isn't supported"},"500InternalServerError":{"content":{"application/json":{"examples":{"GenericError":{"value":{"details":"Dreaded pirate NullPointer","message":"Sorry pal, we screwed up","status":500}}},"schema":{"$ref":"#/components/schemas/ErrorMessage"}}},"description":"The server screwed up"},"501NotImplemented":{"content":{"application/json":{"examples":{"NextVersion":{"value":{"details":"We do sprints, not marathons","message":"Not now, maybe tomorrow","status":501}}},"schema":{"$ref":"#/components/schemas/ErrorMessage"}}},"description":"Working on it, just not yet"}},"schemas":{"ErrorMessage":{"properties":{"details":{"description":"Detailed error description, useful for debugging","type":"string"},"message":{"description":"Short error message","type":"string"},"status":{"description":"HTTP status code of the error","type":"integer"}},"type":"object"}},"securitySchemes":{"basic":{"description":"Basic authentication","scheme":"basic","type":"http"},"jwt":{"description":"Token based auth","scheme":"bearer","type":"http"}}},"security":[{"basic":[]},{"jwt":[]},{}],"tags":[{"description":"CalDAV APIs","name":"caldav"}]}