Email
Inboxes
Marketing
SMS
Sign
Verify
Forms
Scheduling
Hooks
Risk
Platform
Connect a calendar with a password
POST
/v1/scheduling/hosts/{host}/calendar_connections
CalDAV (Apple and others) with an app password, or, in sandbox environments, a simulated calendar whose busy times you set yourself. Google and Microsoft use authorize.
bearerAuthheader
AuthorizationBearer <token>A secret API key from the dashboard: coss_live_… for production environments, coss_test_… for sandbox environments.
host*stringThe host's id or uid.
Coss-Version?"2026-10-10"The API version (a date) to use for this request. Defaults to your organization's version, pinned to the latest one when it first used the API and upgraded from the dashboard. The SDK always sends the version it was built for.
Value in
"2026-10-10"application/json- body
- body
- …
provider*"caldav"Value in
"caldav"url*stringThe server's https URL.
Format
uriLength
length <= 2000username*stringLength
1 <= length <= 320password*stringAn app-specific password. Encrypted, and never returned.
Length
1 <= length <= 500The connection.
application/json- response
- response
- …
object*"scheduling.calendar_connection"Value in
"scheduling.calendar_connection"id*stringhost*stringprovider*stringValue in
"google""microsoft""caldav""simulated"account*stringstatus*stringneeds_reauth: access was lost, and this host isn't offered until it's back.
Value in
"active""needs_reauth"calendars*array<>created_at*stringimport { Coss } from "coss";const coss = new Coss({ apiKey: process.env.COSS_API_KEY, baseUrl: "https://api.coss.com",});const { data, error } = await coss.scheduling.calendars.connect({ value: "host_01kd2m9a0b1c2d3e4f5g6h7j8m",}, { provider: "caldav", url: "https://caldav.icloud.com", username: "ana@example.com", password: "abcd-efgh-ijkl-mnop",});{ "object": "scheduling.calendar_connection", "id": "calconn_01kd2m9a0b1c2d3e4f5g6h7j8m", "host": "host_01kd2m9a0b1c2d3e4f5g6h7j8m", "provider": "google", "account": "ana@example.com", "status": "active", "calendars": [ { "id": "cal_01kd2m9a0b1c2d3e4f5g6h7j8m", "external_id": "ana@example.com", "read_busy": true, "write_target": true, "verified_at": "2027-01-01T10:00:00.000Z" } ], "created_at": "2027-01-01T10:00:00.000Z"}