Rest apiEndpoints
Get Scheduling from Busy Data
Get available time slots based on busy data with advanced parameters. An ok entry lists the calendars it could not read in failedCalendars, so its slots are a partial answer whenever that list is non-empty; an entry that failed outright carries reason unless it names a user who does not exist or has connected nothing — https://docs.recal.dev/core/troubleshooting
Authorization
token AuthorizationBearer <token>
Recal API token
In: header
Query Parameters
end*string
End time of the time range in ISO format
Match
^([+-]?\d{4}(?!\d{2}\b))((-?)((0[1-9]|1[0-2])(\3([12]\d|0[1-9]|3[01]))?|W([0-4]\d|5[0-3])(-?[1-7])?|(00[1-9]|0[1-9]\d|[12]\d{2}|3([0-5]\d|6[1-6])))(T((([01]\d|2[0-3])((:?)[0-5]\d)?|24:?00)([,.]\d+(?!:))?)?(\17[0-5]\d([,.]\d+)?)?([Zz]|([+-])([01]\d|2[0-3]):?([0-5]\d)?)?)?)?$start*string
Start time of the time range in ISO format
Match
^([+-]?\d{4}(?!\d{2}\b))((-?)((0[1-9]|1[0-2])(\3([12]\d|0[1-9]|3[01]))?|W([0-4]\d|5[0-3])(-?[1-7])?|(00[1-9]|0[1-9]\d|[12]\d{2}|3([0-5]\d|6[1-6])))(T((([01]\d|2[0-3])((:?)[0-5]\d)?|24:?00)([,.]\d+(?!:))?)?(\17[0-5]\d([,.]\d+)?)?([Zz]|([+-])([01]\d|2[0-3]):?([0-5]\d)?)?)?)?$maxOverlaps?string
an integer >= 0 (default: 0)
Match
^(?:(?!^-0$)-?(?:(?:0|[1-9]\d*)))$Default
"0"padding?string
Padding in minutes to add before and after busy times
Match
^(?:(?!^-0$)-?(?:(?:0|[1-9]\d*)))$Default
"0"provider?array<>|unknown|unknown
slotDuration?string
Duration of each slot in minutes
Match
^(?:(?!^-0$)-?(?:(?:0|[1-9]\d*)))$Default
"30"Request Body
application/json
TypeScript Definitions
Use the request body type in TypeScript.
Response Body
application/json
application/json
curl -X POST "https://example.com/v1/users/scheduling?end=string&start=string" \ -H "Content-Type: application/json" \ -d '{ "users": [ { "id": "user_123" } ] }'{ "data": [ { "availableSlots": [ { "end": "2019-08-24T14:15:22Z", "start": "2019-08-24T14:15:22Z" } ], "failedCalendars": [ { "calendarId": "string", "message": "string", "provider": "google", "reason": "accessDenied" } ], "options": { "end": "2019-08-24T14:15:22Z", "maxOverlaps": 0, "padding": 0, "slotDuration": 0, "start": "2019-08-24T14:15:22Z", "earliestTimeEachDay": "10:00", "latestTimeEachDay": "16:00" }, "status": "ok", "userId": "user_123", "calendarIds": "string", "schedules": { "days": [ "friday" ], "end": "13:00", "start": "10:00" } } ]}