Slot engine
SkillAI & modelsThis gives your AI a reliable way to work out which booking times are open, based on schedules, busy periods, and booking limits. The calculation follows documented inputs, outputs, and rules, so the same schedule always produces the same openings. A debugging guide is included for when a result needs checking.
Available today. Use it from your connected AI after setup.
No other account needed.
After adding it, give your AI a schedule with busy times and any booking limits, then ask it to list the available slots. If a result looks wrong, the included debugging guide shows how to check the inputs and rules.
Then ask your AI: use the Slot engine skill
What your AI can do with it
- List open booking slots from a schedule
- Exclude busy times from availability
- Respect booking limits when proposing times
- Produce the same openings for the same schedule every time
- Trace unexpected results using the included debugging guide
What this skill tells your AI
The instructions your AI receives, as published by builderio/agent-native in packages/scheduling/docs/skills/slot-engine/SKILL.md and read by ahel’s review.
import { computeAvailableSlots } from "@agent-native/scheduling/core"
Inputs
- Event type config (duration, buffers, minimum notice, period, limits, slot interval)
- Schedule (timezone + weekly availability + date overrides)
- Busy intervals (UTC, aggregated from external calendars + existing bookings)
- Booking counts by bucket (day/week/month/year) for limit enforcement
- Time range to compute over
- Optional seats-per-slot + seats-taken map
- Viewer timezone (for limit bucketing, if it differs from the schedule)
Output
- Array of
Slot { start: ISO, end: ISO, available: boolean, seatsRemaining?, hostEmail? }
Invariants
The function guarantees, in order:
- No slot falls in the past (
now + minimumBookingNoticeis the floor). - No slot overlaps a busy interval (with buffers applied).
- No slot falls outside the schedule's available intervals for that day.
- No slot exceeds a booking limit.
- No slot falls outside the event's period (rolling/range).
- DST-safe: we convert to UTC using the schedule's timezone before doing any interval arithmetic.
Debugging
If a slot is unexpectedly missing:
- Check the schedule's weekly availability for that day-of-week in the schedule's timezone (not UTC — weekends can shift across the date line).
- Check date overrides for that local date (empty intervals = fully blocked).
- Check merged busy intervals for overlap, including the before/after buffer expansion.
- Check booking limits: a single existing booking can close a day.
- Check period caps: rolling periods restrict how far in the future slots appear.
If a slot is unexpectedly present:
- Check that
nowis being passed correctly (defaults tonew Date()). - Check that busy intervals from providers are in UTC.
- Confirm slot interval matches what you expect (default = duration).
Signals
- GitHub stars
- 5k
- Forks
- 440
- Last commit
- Sep 2026
Advanced
- Catalog kind
- skill
- Gateway key
slot-engine- Source
- github.com/builderio/agent-native