Delete an event
DELETEhttps://
Soft-deletes an event; POST events/{event}/actions/restore reverses it. ⚠ On a recurring master this removes the whole series (every occurrence disappears), where plnnrly would have asked "this occurrence / this and following / all".
Access
- Token scope
- api:
destroy: events Without it:
403 insufficient-token-scope. - Permission
- events::
manage_self Without it:
403 insufficient-permission. - Rate cost
- 1 unit, write bucket.
- Also
- Accepts
If-Match. Never cached:private, no-store. Unknown query parameters are refused, never ignored.
Both are checked, scope first. A token never does more than its user. How access is checked
There is no force parameter: this resource is not force-deletable, so ?force=true is a 400 unsupported-parameter. Deleting an event that is already deleted answers 204 as well, so a retry is safe. Any time already logged against the event's task is unaffected. Known gap: unlike plnnrly, an API delete does not push the removal to open agenda tabs, so a colleague with the calendar open may keep seeing the event until they reload.
Path parameters
Request headers
A correlation id of your own. It is recorded in our logs next to the server's request id but never returned: the response header always carries the server's id. A value that does not match the pattern is discarded silently, never rejected.
Response 204
Returns no content.
Headers
RateLimit- The IETF
httpapi-ratelimit-headersform of your remaining allowance on the tightest bucket this request touched. RateLimit-Policy- The ceiling and window of that bucket, as
<limit>;w=<seconds>. X-Request-Id- The server-generated ULID correlating this response with our logs.
Every response also carries Cache-Control, Vary, X-Content-Type-Options, X-Plnnrly-Api-Version, X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset. Headers and versioning
Errors
403 Forbidden.
forbidden-by-policyinsufficient-permissioninsufficient-token-scope
forbidden-by-policy: The event is your own and you hold events::manage_for_others but not events::manage_self. Another user's event answers 404 instead when you do not hold events::manage_for_others, because you cannot see it.
412 Precondition failed.
7 errors every operation can return: 400, 401, 404, 406, 429, 500, 503
400 Bad request.
idempotency-key-requiredinvalid-cursorinvalid-query-parametermalformed-requestunsupported-parameter
401 Unauthenticated.
404 Not found.
406 Not acceptable.
429 Too many requests.
500 Server error.
503 Service unavailable.
This path allows GET, PATCH, DELETE. Anything else answers 405.
Something wrong or missing on this page? Tell us