Only a registered user can perform this action
Authentication - string - required
Example of Authentication header : "Bearer TOKEN_FETCHED_FROM_SERVER_DURING_REGISTRATION"
Lightweight link check that runs BEFORE the preview/parse endpoint (POST /api/external/calendars/ical). It normalizes the URL (webcal:// -> https://), rejects a URL already connected anywhere in the workspace (workspace calendars or any user's personal calendars, matched on the normalized URL), then makes ONE short SSRF-guarded outbound request to confirm the link is reachable and is an iCal feed. It never parses or returns events; a valid-but-empty feed still passes.
{
"url": "webcal://calendar.example.com/team/games.ics"
}
Carries the normalized (canonical) URL for the frontend to use in the
subsequent preview/create; no events are returned.
{
"valid": true,
"url": "https://calendar.example.com/team/games.ics"
}
Unreachable / timeout / non-200 / non-iCal / SSRF-blocked URL.
{
"message": "The iCal URL you entered is not valid"
}
The URL is already connected as a workspace or personal calendar; the
email of the user who connected it is included.
{
"message": "This iCal is already connected",
"email": "coach@example.com"
}
While CALENDARS_BETA_ENABLED=true only users granted `calendars_enabled`
may call this endpoint; open to everyone once the variable is off.
{
"message": "This feature is not available for your account yet.",
"code": "feature_not_available"
}
| Param name | Description |
|---|---|
|
url
required |
iCal feed URL (webcal:// or https://) Validations:
|