Powerful Calendar Management API for your web projects
Tags: webdev, javascript, react, productivity
Published: 2021-03-10 14:47:34

The Spurwing API provides powerful features for **calendar management** and **appointment scheduling** purposes. In this post I will briefly go over the API design, and show how you can integrate it in your web development projects with ease.

![Alt Text](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/3raxldzl98liush25w04.png)

## Intro
**Managing and scheduling appointments** of any kind can be a very complex process. We have to take many factors into consideration, such as overlapping slots, availabilities, timezones and daylight saving times.

On top of that we may need to **synchronize** it with our other calendars from Google, Outlook and Apple. But it doesn't stop there, what if someone cancels and we need to re-organize the schedules for optimal efficiency.

Things can quickly get very complicated, especially in large enterprises with employees having **multiple calendars**.

There are many dedicated calendar management companies out there, unfortunately their core offerings are web calendars with limited API features.

At Spurwing our focus is providing an advanced **all-in-one scheduling API**. We already took care of all the common complexities and pitfalls in the calendar management process.

## REST API
The backbone of Spurwing is our advanced yet easy to use REST API. You can consult the documentation at https://docs.spurwing.io/
But before you start coding away and reinventing the wheel, we have several official libraries available.

## JavaScript Library
https://github.com/Spurwingio/Spurwing-API-Javascript-Library
This library implements Spurwing's API in vanilla JavaScript with AJAX calls.

It's a lightweight and zero-dependency library, ideal for incorporating in your existing JavaScript projects. It can also be used with popular frameworks and libraries like TypeScript, React, Angular, Vue, jQuery, etc.

Usage example:
```js
let sp = new Spurwing();

const PID = 'your provider id';

let allApps = await sp.get_appointment_types(PID, true)
```

## NodeJS Library
https://github.com/Spurwingio/Spurwing-API-NodeJS-Library
This is a NodeJS implementation of our API. It depends on the axios library for HTTP calls.

Usage example:
```js
const Spurwing = require('spurwing')

const PID = 'your_provider_id';
const KEY = 'your_api_key';

let sp = new Spurwing();

let allApps = await sp.list_appointments(KEY, 1000, 0, PID)
```

### React Widget Demo
https://github.com/Spurwingio/Spurwing-ReactJS-widget
This demo project doesn't use the above libraries, but does illustrate how you can integrate our API in React with axios as HTTP client.

## Python Library
https://github.com/Spurwingio/Spurwing-API-Python-Library/
This is a Python implementation of our API. It depends on the `requests` library for HTTP calls.

Usage example:
```py
from spurwing import Client as sp

PID = 'your_provider_id';
KEY = 'your_api_key';

A = sp.list_appointments(KEY, 1000, 0, PID)
```

## Final words
More libraries are being developed right now for C#, Java/Android, iOS and C++. Follow us on DEV to receive updates on our progress.

Cover Photo by https://unsplash.com/@manasvita