API To Spice Up Your Website or Client's Website
Tags: productivity, webdev, discuss, programming
Published: 2021-05-09 19:02:31

Have you built a business website or portfolio for a client? Or are you currently making one? Do you have a personal website or portfolio? Here is an API to spice up that website.

# [Spurwing](https://spurwing.io "Spurwing")
[![Spurwing.io](https://webdeverguide.com/wp-content/uploads/2021/05/spurwing.png "Spurwing.io")](https://spurwing.io "Spurwing.io")

Spurwing is a web app for scheduling and calendar management. It also has an API for easy integration on your application.

What is **Spurwing** really about?

Spurwing manages your schedules as a business person, freelancer, doctor, therapist, educationist, CEO, etc.

Your clients can book an appointment with you through your website. And all of your appointment activities are managed in your Spurwing dashboard.

So as a developer who is making a website for a client. Let's say your client is a Therapist, with your client's website, clients can book an appointment with your client with just a few clicks thanks to you.

With such a tool as Spurwing, you're not going to have a static calendar showing the days your client is available (since the publishing of the website).

Instead, you'll have a dynamic calendar. As such your client can go on a one-week vacation and it will reflect on your client's website.

Brilliant! Right? I call it, having a static website with a dynamic feature.

## Here is How it Works
From here henceforth, I am assuming you (the developer or whoever you are reading this) as the owner of the website:

1. You integrate the API on the proposed website
2. Visitors or clients can book an appointment with you.
3. You can accept or decline meetings on your Spurwing dashboard.
4. Your client (who just booked) will get an instant notification (via e-mail or SMS) on accepted or declined meetings.

Trust me, there is a lot of good stuff they offer. But we will break the above steps into features Spurwing offers that will enable you to achieve the purpose (*booking appointment*).

### 1. Security
This is a very important aspect that you should consider for such a tool. You wouldn't want nobody to know about your schedules right? Especially when you are international. Knowing your schedules is like knowing your next movement.

Not to worry as all your data is encrypted and stored at [SOC 2](https://www.imperva.com/learn/data-security/soc-2-compliance/ "SOC 2") certified facilities and fully audit logged.

> [SOC 2](https://www.imperva.com/learn/data-security/soc-2-compliance/ "SOC 2") is an auditing procedure that ensures your service providers securely manage your data to protect the interests of your organization and the privacy of its clients.

[SOC 2](https://www.imperva.com/learn/data-security/soc-2-compliance/ "SOC 2") defines criteria for managing customer based data based on five trust service principles i.e **Security**, **Availability**, **Processing Integrity**, **Confidentiality** and **Privacy.**

### 2. API or Open-Source Widget:
With Spurwing you can either integrate with its [open-source widget](https://github.com/Spurwing/Appointment-Scheduling-Widgets "open-source widget") or create from scratch with its [API](https://docs.spurwing.io/ "API").

What and How do I mean?
#### Spurwing API
The API is a great way to integrate into your website. It is packed full with enough endpoints for maximal use. With this API, you can

##### [>> Create, List and Delete Appointment types:](https://docs.spurwing.io/docs/spurwing/reference/SpurWing.v1.yaml/paths/~1appointment_types/get "##### Create, List & Delete an Appointment type:")
An appointment type is like saying the type of meeting you accept. Say you're Elon Musk your appointment types could be business, bitcoin investment, motivational speech, family, etc.

[![spurwing-appointment-type](https://webdeverguide.com/wp-content/uploads/2021/05/spurwing-appointment-type.png "spurwing-appointment-type")](https://spurwing.io "spurwing-appointment-type")

It can be more than one of course. Appointment types are about recurring activities or meetings in your line of work.

With these endpoints, your clients can specify which type of meeting He/She intends to have with you.

Each appointment type has a time interval that indicates how long you intend that kind of meeting to last. It can be in 60 minutes, 720 minutes (that feels like a lifetime though), or as short as 15 minutes.

With these endpoints, you can also specify the contact types through which the meeting will be conducted. See the [documentation](https://docs.spurwing.io/docs/spurwing/reference/SpurWing.v1.yaml/paths/~1appointment_types/post "documentation") to know the available contact types and how to use them.

As the owner of the account, you can specify which options are suitable for you for that particular meeting type. If you only want to be contacted by one means, that is the only means that will reflect on your site.

With the API, *you can also `Get` a specific appointment type as well as update an appointment type.*

##### [>> Create, List and Delete Appointments](https://docs.spurwing.io/docs/spurwing/reference/SpurWing.v1.yaml/paths/~1appointments/get "--> Create, List and Delete Appointments")

[![spurwing-appointments](https://webdeverguide.com/wp-content/uploads/2021/05/spurwing-appointments.png "spurwing-appointments")](https://spurwing.io "spurwing-appointments")

Appointments can be individual appointments or group appointments. With these endpoints, you can **create**, **list** or **delete** a  1 on 1 video chat appointment or in-person group appointment. See [docs](https://docs.spurwing.io/docs/spurwing/reference/SpurWing.v1.yaml/paths/~1appointments/post "docs") for more details and instruction.

*You can also **`Get`** a specific appointment as well as **update** an appointment.*

In creating an appointment there is another endpoint that does the same job as this endpoint. In fact, the demo schedule in the Spurwing homepage uses the other endpoint.

The other endpoint is the [complete-booking appointment](https://docs.spurwing.io/docs/spurwing/reference/SpurWing.v1.yaml/paths/~1bookings~1complete_booking/post "complete-booking appointment"). The complete-booking appointment lets you create a booking for a client on behalf of that client. That means it will create a client account for that client (or attendee now).

The complete-booking appointment also enforces availability unlike the formal. It makes sure you are available before creating the appointment.

##### [>> Create, List and Delete Availability Objects](https://docs.spurwing.io/docs/spurwing/reference/SpurWing.v1.yaml/paths/~1availabilities/get "--> Create, List and Delete and Availability Object")

[![Spurwing-availability-objects](https://webdeverguide.com/wp-content/uploads/2021/05/spurwing-availability-objects.png "Spurwing-availability-objects")](https://spurwing.io "Spurwing-availability-objects")

**When are you available Mr. Elon Musk?** With these endpoints, you can **create** a recurring availability or a one-time availability. You can also **list** and **delete** them.

Let's say you're usually available from Monday to Friday (recurring availability). This week you decided to create a special time for your clients on Saturday, only this week (one-time availability).

For recurring availability, you can specify the start and end times daily. And by that, I don't mean you do it daily. I mean how you want it to run daily. It's a one-time setup and a recurring availability.

It can also be **updated** of course and you can also **`Get`** a specific availability object. You should see [docs](https://docs.spurwing.io/docs/spurwing/reference/SpurWing.v1.yaml/paths/~1availabilities/post "docs") for more.

These are the most endpoints we can take for now. Check the others on the [documentation](https://docs.spurwing.io/ "documentation").

All of Spurwing's endpoints can be tested in its documentation. You don't need to create a new project first or use Postman (or the new Thunder Client) to get familiar with the endpoints. It's called _Practive as you learn._

#### Spurwing Open-Source Widget:
Almost everything you can do with the API can be done with your Spurwing dashboard. You can set up your appointment types, availability, contact types, book appointments with past clients, etc.

The one thing you should not do is what the complete-booking endpoint does (stated above) though it is possible to do so. As we have first said, the complete-booking endpoint creates makes a booking on behalf of the client.

As Elon you'd say to your clients (on your website); "Hey! Here is my Spurwing's email & password, log in, got to the dashboard, and book an appointment with me".

Or you could say "Hey, you want to book an appointment with me send me your name, email, and phone number and I will do it myself". That's suicidal.

To solve this, you can either use one of the API's endpoints (as discussed above) or use Spurwing's open-source widget.

You can actually book meetings with your past clients (already recognized clients of yours, usually saved in Spurwing), but it's not the best if you're going to do it manually. I mean you have an API and an Open-Source widget for that.

The open-source widget is a simple link (it's in your dashboard) with your provider_id (a form of id) that your clients will use to book an appointment with you.

All of your appointment types, availability are handled within this widget. In booking an appointment with you, with this widget, your clients can

##### Select an Appointment Type
[![spurwing-open-source-widget-appointment-type](https://webdeverguide.com/wp-content/uploads/2021/05/spurwing_open-source-widget-appointment-type.png "spurwing-open-source-widget-appointment-type")](https://spurwing.io "spurwing-open-source-widget-appointment-type").

Recall that I created the listed appointment types (in the image above) in my Spurwing dashboard. And I did specify phone call or video call as the contact type for each of them. I also specified the time interval in minutes.

Now all of that is reflected in this widget, such that my client can select the type of meeting, the contact type, as well as see the time interval I accept for such meeting.

##### Select Date and Time

[![spurwing_open-source-widget-date-and-time-original](https://webdeverguide.com/wp-content/uploads/2021/05/spurwing_open-source-widget-date-and-time-original.png "spurwing_open-source-widget-date-and-time-original")](https://spurwing.io "spurwing_open-source-widget-date-and-time-original")

I believe you can see the light blue indicator on each day showing I am available all day. Now there is a little issue here that I would have loved to point out, but it will confuse those who don't have an account yet.

The issue is not a big deal though, it's just a caution. If you have created an account and you want me to tell you, hit me up in the comment section.

Now when I am not available, it will show that I am not available. So that should tell you that this widget uses the complete-booking appointment endpoint (as discussed in the API section).

One cool thing I should mention is timezones. Looking up at the image (yeah the one with very low contrast), just below the Month, Day, and Year; you will find my timezone. With Spurwing timezone is well handled.

##### Submit their Contact Information
[![spurwing_open-source-widget-confirm-information](https://webdeverguide.com/wp-content/uploads/2021/05/spurwing_open-source-widget-confirm-information.png "spurwing_open-source-widget-confirm-information")](https://spurwing.io "spurwing_open-source-widget-confirm-information")

Here is where your clients submit their information and boom, they are booked. Now you will have to confirm or deny their meetings on your Spurwing dashboard.

Every new client is indexed in your dashboard, you get to see all your clients. An existing client that books an appointment is regarded as an existing client (an already recognized client).

The uniqueness is the email. With the email, they recognize an already **_existing client_**. This is achieved with the complete-booking endpoint as specified in the docs. So don't worry if you're not going to use the open-source widget.

### 3. Fully Branded

With Spurwing, you can brand your business without any Spurwing watermark. Emails sent to your clients when they book will contain your brand and not theirs.

You can see that even in the widget, there is no Spurwing logo or any 'Made with love by Spurwing' text. It's plainly about your business.

### 4. Easy peasy
Spurwing's dashboard is very easy to work with. There is a calendar that shows your schedule (a very detailed calendar).

The good thing is, Spurwing is synced with Google Calendar, Outlook, and iCal, so you can likewise view your schedules using any of those calendars.

These are some of the features I can post now, there are several others but I don't want this article to be too long. You can visit their website at spurwing.io to see more.

Though there is one thing, I'd like to add i.e [**Spurwing's blog**](https://www.spurwing.io/blog "Spurwing's blog"). It's a great place where they share ideas, tips, and tutorials about their services. You should check it out.

## Conclusion

Introduce this feature to your clients and they'll love it. It's a major aspect of their business's growth. And on your path as a developer, integrating the API or open-source widget is just easy.

There is this idea that I have for this appointment booking and scheduling. If you've been following me, you'd remember I created an [appointment booking app with purely JavaScript Accessors](https://dev.to/elijahtrillionz/building-a-project-with-javascript-objects-1dn "appointment booking app with purely JavaScript Accessors").

I wanted to use it with this API, but after lots of review and sketching, I saw that using the API seems like not using any API at all.

What I intended to do was have a Spurwing account that can handle multiple accounts (as seen in [this project](https://github.com/Elijah-trillionz/appointment-booking-app "this project")). After all of my sketching, the one question I kept asking myself is 'What's the role of Spurwing?'.

I may make it just for practice but not for production, it's best to create an individual Spurwing account.

Alright, that's it for today. If you found this article helpful, kindly like and share. If you'd like to say another article from me, please do [buy a coffee](https://buymeacoffee.com "buy a coffee").