Download OpenAPI specification:Download
TidyCal's REST API provides a handful of endpoints which can be used to get information about your account and bookings. It uses conventional OAuth 2.0 protocol for authentication.
Create a personal access token at https://tidycal.com/integrations/oauth. Once created, it can be used to authenticate requests by passing it in the Authorization
header.
Authorization: Bearer {TOKEN}
If you're building a custom integration to TidyCal which requires users to authenticate in order to get access tokens to make API requests on their behalf, you'll need to create an OAuth 2.0 client. This is easy to do from the "OAuth Apps" settings page found here https://tidycal.com/integrations/oauth
Using the authorization_code
grant type to authenticate users using OAuth 2.0 to retrieve an access token is fairly conventional, more information on that process can be found here: https://www.oauth.com/oauth2-servers/server-side-apps/authorization-code/
{- "name": "John Doe",
- "email": "john@doe.com",
- "lifetime_pro_at": "2022-01-01T00:00:00Z",
- "vanity_path": "johndoe",
- "language": "en",
- "profile_picture_url": "https://www.gravatar.com/avatar/202446b468bec26847368d8a214b80c9?d=blank&s=200",
- "currency_symbol": "$"
}
Get a list of bookings.
starts_at | date Get bookings starting from a specific date. |
ends_at | date Get bookings ending before a specific date. |
cancelled | boolean Get only cancelled bookings. |
page | number Page number. |
{- "data": [
- {
- "id": 1,
- "contact_id": 1,
- "booking_type_id": 1,
- "starts_at": "2022-01-01T00:00:00Z",
- "ends_at": "2022-02-01T00:00:00Z",
- "cancelled_at": "2022-02-01T00:00:00Z",
- "created_at": "2022-02-01T00:00:00Z",
- "updated_at": "2022-02-01T00:00:00Z",
- "timezone": "America/Los_Angeles",
- "meeting_id": "fw44lkj48fks",
- "questions": { },
- "contact": {
- "id": "1",
- "email": "john@doe.com",
- "name": "John Doe",
- "created_at": "2022-01-01T00:00:00Z",
- "updated_at": "2022-01-01T00:00:00Z"
}
}
]
}
{- "data": [
- {
- "id": 1,
- "user_id": 1,
- "title": "15 Minute Meeting",
- "duration_minutes": 15,
- "padding_minutes": 10,
- "disabled_at": "2022-02-01T00:00:00Z",
- "created_at": "2022-02-01T00:00:00Z",
- "updated_at": "2022-02-01T00:00:00Z",
- "url_slug": "15-minute-meeting",
- "description": "Book a meeting with me for 15 minutes!",
- "price": 10,
- "private": false,
- "latest_availability_days": 60,
- "booking_threshold_minutes": 120,
- "max_bookings": 1,
}
]
}