https://github.com/dayschedule/dayschedule-api
Official Node.js library for DaySchedule to integrate online appointments bookings, reservation and calendar scheduling via API
https://github.com/dayschedule/dayschedule-api
appointment-api appointment-scheduler appointments bookings calendar calendly reservation scheduling
Last synced: 5 months ago
JSON representation
Official Node.js library for DaySchedule to integrate online appointments bookings, reservation and calendar scheduling via API
- Host: GitHub
- URL: https://github.com/dayschedule/dayschedule-api
- Owner: dayschedule
- License: mit
- Created: 2023-10-09T04:27:36.000Z (over 2 years ago)
- Default Branch: main
- Last Pushed: 2024-07-15T11:00:28.000Z (almost 2 years ago)
- Last Synced: 2025-09-18T03:05:02.489Z (9 months ago)
- Topics: appointment-api, appointment-scheduler, appointments, bookings, calendar, calendly, reservation, scheduling
- Language: TypeScript
- Homepage: https://dayschedule.com/docs/api
- Size: 155 KB
- Stars: 5
- Watchers: 2
- Forks: 3
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# dayschedule
[](https://www.npmjs.com/package/dayschedule-api)
[](https://www.npmjs.com/package/dayschedule-api)
Official Node.js library for [DaySchedule](https://dayschedule.com/) API to integrate online appointments bookings, reservation and calendar scheduling in any tool with [embeddable widget](https://github.com/dayschedule/dayschedule-widget) on front-end and this SDK on backend for complete white-label appointment scheduling at any scale.
## Installation
```
npm i dayschedule-api
```
## Documentation
Full API documentation to understand the appointment booking flow with DaySchedule is available at -
https://dayschedule.com/docs/api
### Getting started
Create a `DaySchedule` instance with api key. You can get your api keys from the app https://app.dayschedule.com/settings/apikeys
```
const DaySchedule = require('dayschedule-api');
const daySchedule = new DaySchedule('YOUR_API_KEY');
```
The SDK is UMD (Universal Module Definition) compatible, which means that it can be loaded in various module formats.
#### ES6 module
```
import DaySchedule from 'dayschedule-api'
const daySchedule = new DaySchedule('YOUR_API_KEY');
```
#### CommonJS2 (in e.g. node.js)
```
const DaySchedule = require('dayschedule-api');
const daySchedule = new DaySchedule('YOUR_API_KEY');
```
Now, the API can be accessed via the `daySchedule` instance. All the methods follow the namespaced signature. For example, to fetch all the booked appointments -
```
// API signature
// {daySchedule}.{api}.{method}(id, [params])
// example
const bookings = await daySchedule.bookings.list();
```
Every request returns a promise.
### Methods
Each API endpoint has these 5 methods `list`, `get`, `create`, `update`, `delete` API operations. For example, here is the booking API methods -
| Method | Description | Parameters | Return Value |
| -------- | -------------------------------- | ----------------------- | --------------------- |
| `list` | Get all the bookings | `params: any` | `Promise` |
| `get` | Get details of a booking by ID | `id: string` | `Promise` |
| `create` | Create a new booking | `data: any` | `Promise` |
| `update` | Update an existing booking by ID | `id: string, data: any` | `Promise` |
| `delete` | Delete a booking by ID | `id: string` | `Promise` |
### Booking example:
```
// Using promises
daySchedule.bookings.create({
"resource":{
"resource_id":"643d0e3511ce9450e585c2a9",
},
"host":{
"user_id":758
},
"start_at":"2023-10-11T09:00:00.000Z",
"end_at":"2023-10-11T09:30:00.000Z",
"invitees":[{
"name":"John Doe",
"email":"Johndoe@gmail.com"
"questions":[
{
"type":"text",
"name":"age",
"label":"What is your age?",
"value":"18"
},
]}
]
}).then(function(response){
console.log(response);
}).catch(function(response){
console.log(response);
});
// Using async/await
const response = await daySchedule.bookings.create({ ... })
```
### More examples
- [Resources](docs/resources.md)
- [Bookings](docs/bookings.md)
- [invitees](docs/invitees.md)
- [Pages](docs/pages.md)
- [Schedules](docs/schedules.md)
- [Users](docs/users.md)
- [Workflows](docs/workflows.md)
- [Contacts](docs/contacts.md)
## Release
1. Switch to `main` branch.
2. Update the `CHANGELOG.md` & bump the version in `package.json`
3. Commit and Tag the release & push to Github
4. Create a release on GitHub with changelog
5. Publish to npm with `npm publish` command
## License
MIT Licensed. See [LICENSE.txt](LICENSE.txt) for more details