Forum Academy Marketplace Showcase Pricing Features

New Plugin: TopCal - Dates, Ranges and Time Slots

The Workflow for ‘GetAvailableTimeSlots’ is run on the server vs. the on page element which runs client side. So this allows you to run the workflow in a Backend Workflow or to run it in a ‘loop’.

It performs the same function as the on page element and doesn’t create any data, it just reads and returns a list of available time slots. In most cases if you want to show on page availability for a single ‘Calendar/resource’ I would suggest the Element as it is quicker and updates each time a field within it is changed.

Some specific cases could be:

  • You want to save time slots directly on a resource to make them more easily searchable, you would have an ‘update times’ backend workflow that updates the time slot list every time the Calendar/Resource is changed
  • If you want to run a loop and look up availability of many Calendars/Resources at once (similar to what I have described in this thread topic when using the Orchestra plugin, but in a way that can work on a backend)
  • You can setup an API that when it get’s pinged it returns the list of available times
1 Like


I used the TopCal plugin to develop an application with an agency plan.
Once the application passed on a personal plan and bought the plugin.
No time slot data is visible and there is the following error message:

The plugin TopCal - Dates, Ranges & Time Slots / element Get Available Time Slots threw the following error: ReferenceError: luxon is not defined
at eval (PLUGIN_1614827714366x678015935299977200/TopCal—Dates–Ranges—Time-Slots-update–Get-Available-Time-Slots-.js:49:21)
at (please report this to the plugin author)"

So how can we fixe it ?


Hello Raphael I just replied to your email before seeing this, so we can discuss things there

Hi @gf_wolfer ,

TopCal has been amazing! I recommend this plug in to anyone needing a good calendar booking system.

My only concern is that my users’ list of blocked and specific days available is getting long and I’m worried it will lead to longer loading times. How can I remove those blocked or specific dates from the database once the date passes? I would have thought something like this could work but I guess not:

Great to hear it has helped!

Good question that I thought I might have to address at some point. Using a List of Dates is good because we don’t actually have any data to delete, instead we can just Make Changes to the Schedule and use the Filter function to remove dates from the past. Like this:

Hi gf_wolfer

This is my use case. Let me explain my doubt:

You mentioned “It is common in a Booking system that someone first selects a Service type, which may be a specific length of time, and then they can see what days they can book this on. So you would fill in this data before showing the Calendar Availabilities.”

What i need is:

Lets see in practise: cliente choose service of 25 min the app shows

09:00 — free
09:25— blocked
09:50 — free

And so on…

Lets see in practise: cliente choose service of 25 and 35 min = total 60 min then app shows slots like this

09:00 — free
10:00 — free
11:00 — blocked
12:00— free

Can I solve my demand using your plugin?