List Available Slots
cal.list_slots
ActionBusiness appsconnection required
Calls the Cal.com API with the connection's credentials.
List the free slots an event type offers between two dates, grouped by date the way Cal.com returns them.
Connection
- Required
- Yes — the node will not save without one
- Auth type
- API key
- Providers
- Cal.com
- Secret shape
- the Cal.com API key (cal_live_… / cal_test_…), or {"api_key": "…"}
- Config it needs
- base_url
- Resolved by
- config.connection_id, else node.connection_id
Configuration
9 fields, 2 required. A dotted path is a nested object and name[] an array of objects — the editor renders the same tree.
| Field | Type | Required | Default | Constraints | Example |
|---|---|---|---|---|---|
start First day to look at, as a date or an ISO-8601 instant. | string | Yes | — | — | 2026-09-05 |
end Last day to look at, as a date or an ISO-8601 instant. | string | Yes | — | — | 2026-09-06 |
event_type_id Numeric id of the event type. Use this or event_type_slug, not both. | string | No | — | — | 100 |
event_type_slug Slug of the event type, e.g. intro-call. Needs username or team_slug alongside it so Cal.com knows whose event type it is. | string | No | — | — | intro-call |
username Cal.com username that owns the event type named by event_type_slug. | string | No | — | — | alice |
team_slug Team slug that owns the event type named by event_type_slug. | string | No | — | — | sales |
duration Slot length in minutes, for a multi-duration event type. The 1-1440 range here is a sanity bound, not a Cal.com rule. | number | No | — | 1–1440 | — |
time_zone IANA time zone the returned times should be expressed in, e.g. Europe/Rome. | string | No | — | — | Europe/Rome |
slot_format How each slot is written: a bare start time, or a start/end range. | string | No | — | one of "time", "range" | — |
- At least one of event_type_id, event_type_slug must be set.
Example configuration
Every value below is the contract’s own example or default — nothing invented.
{
"end": "2026-09-06",
"event_type_id": "100",
"event_type_slug": "intro-call",
"start": "2026-09-05",
"team_slug": "sales",
"time_zone": "Europe/Rome",
"username": "alice"
}Output
One shape.
result
| Field | Type | Example |
|---|---|---|
slots_by_date Cal.com's own grouping: a map of date to the slots free on it. | object | — |
dates The dates that have at least one free slot, sorted. | array | — |
slots Every slot across every date, flattened for iteration. | array | — |
count How many free slots were found. | number | 12 |
{
"count": 12,
"dates": [],
"slots": [],
"slots_by_date": {}
}See List Available Slots run in a workflow.
In a technical demo we add the Cal.com connection, drop the node on the canvas and let Workflow Health pre-flight it before the first real run.