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.

FieldTypeRequiredDefaultConstraintsExample
start
First day to look at, as a date or an ISO-8601 instant.
stringYes——2026-09-05
end
Last day to look at, as a date or an ISO-8601 instant.
stringYes——2026-09-06
event_type_id
Numeric id of the event type. Use this or event_type_slug, not both.
stringNo——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.
stringNo——intro-call
username
Cal.com username that owns the event type named by event_type_slug.
stringNo——alice
team_slug
Team slug that owns the event type named by event_type_slug.
stringNo——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.
numberNo—1–1440—
time_zone
IANA time zone the returned times should be expressed in, e.g. Europe/Rome.
stringNo——Europe/Rome
slot_format
How each slot is written: a bare start time, or a start/end range.
stringNo—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

FieldTypeExample
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.
number12
{
  "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.