The Free/Busy endpoint is designed to return only the busy time ranges. Free time is represented implicitly, any time range not covered by a returned time slot is free.
Each event has a busy boolean field (true = busy, false = free). You can fetch all events via GET /v3/grants/{id}/events and check the busy field to find events where the user’s status is set to “Free” (busy: false). There’s no way to filter by busy status in the query parameters, so you’d need to fetch events for the time range and filter client-side.