# Elastic for Appointment Availability

**URL:** https://discuss.elastic.co/t/elastic-for-appointment-availability/285176
**Category:** Elasticsearch
**Created:** [September 26, 2021, 8:26pm UTC](https://discuss.elastic.co/t/elastic-for-appointment-availability/285176 "2021-09-26T20:26:34Z")
**Posts on this page:** 3
**Page:** 1

<div class="post-metadata">

### Author: ![updev](https://avatars.discourse-cdn.com/v4/letter/u/bc79bd/32.png) [@updev](https://discuss.elastic.co/u/updev)
#### Post date: [September 26, 2021, 8:26pm UTC](https://discuss.elastic.co/t/elastic-for-appointment-availability/285176/1 "2021-09-26T20:26:34Z")

</div>

Hi everyone,

I'm in the process of evaluating the best technology stack for an appointment booking system, similar to that of Acuity and Calendly.

Does anyone have any experience using ES for this sort of thing?

Would it be possible to have an engine full of appointment documents, then run a query against those appointments to return a list of available time periods that aren't in the engine.

So for example let's say there were 3 appointments in the engine, 1 at 9 am, 1 at 12pm and 1 at 2pm.

Then let's say the appointment time is fixed at 1 hour, and appointments only ran between 9am and 5 pm.

Would elastic be able to analyze this request and return the following available times?

10am-11am  
1pm-2pm  
3pm-4pm  
4pm-5pm

If so could you give a generalisation of how this would be achieved or even just guage the amount of work to run such a query?

I have a client that is looking to either build a MYSQL based solution in house, using generated tables, but also wants to consider ES.

Thanks,  
Rob

---

<div class="post-metadata">

### Author: ![warkolm](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/warkolm/32/39224_2.png) [@warkolm](https://discuss.elastic.co/u/warkolm)
#### Post date: [September 27, 2021, 1:47am UTC](https://discuss.elastic.co/t/elastic-for-appointment-availability/285176/2 "2021-09-27T01:47:03Z")

</div>

Welcome to our community! 😃

You could use something like [Range field types | Elasticsearch Guide [7.15] | Elastic](https://www.elastic.co/guide/en/elasticsearch/reference/current/range.html) to store the time block of the appointment, and then query over that.

---

<div class="post-metadata">

### Author: ![system](https://us1.discourse-cdn.com/elastic/original/3X/1/a/1ac57faf039f6b580b3f104ef42a2a89e41014de.png) [@system](https://discuss.elastic.co/u/system)
#### Post date: [October 25, 2021, 1:47am UTC](https://discuss.elastic.co/t/elastic-for-appointment-availability/285176/3 "2021-10-25T01:47:34Z")

</div>

This topic was automatically closed 28 days after the last reply. New replies are no longer allowed.
