LogoRecal
Rest apiEndpoints

Get User Scheduling (Advanced)

POST
/v1/users/{userId}/scheduling

Get available time slots based on busy times in users primary calendars with advanced parameters

AuthorizationBearer <token>

Recal API token

In: header

Path Parameters

userId*string
Match^[A-Za-z0-9][A-Za-z0-9._-]{2,127}$

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

application/json

application/json

application/json

application/json

application/json

curl -X POST "https://example.com/v1/users/user_123/scheduling?end=string&start=string" \  -H "Content-Type: application/json" \  -d '{    "schedules": [      {        "days": [          "friday"        ],        "end": "13:00",        "start": "10:00"      }    ]  }'
{  "data": {    "availableSlots": [      {        "end": "2019-08-24T14:15:22Z",        "start": "2019-08-24T14:15:22Z"      }    ],    "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"    }  }}