Skip to Content
Account
Enter the email address on your account.
Forgot Your Username?
Enter your password.
Forgot Your Password?

Or continue with

J2Commerce 6

Calendly Scheduler

9 Min Read

Documentation current for Calendly Scheduler v6.0.6. Last checked November 12, 2026.

On This Page

Calendly Scheduler is a Joomla system plugin that shows a live Calendly booking calendar inside an article or a contact page. Visitors choose a meeting type, a day and a time and enter their details.

You choose how the booking is made: in your page through the Calendly Scheduling API, or through a single-use Calendly link where the visitor finishes on Calendly. The plugin connects with a Personal Access Token, does not need J2Commerce and includes translations for 22 languages.

Requirements

  • Joomla 6.x.
  • A Calendly account and a Personal Access Token.
  • A paid Calendly plan (Standard or above) for booking inside your page. Plans without the Scheduling API can use Single-Use Link mode instead.

Installation

  1. In Joomla, open System -> Install -> Extensions and upload the plugin package.
  2. Open System -> Plugins and search for System - Calendly Scheduler.
  3. Make sure the plugin is enabled, then open it.

Connecting Calendly

  1. In Calendly, open Integrations and Apps -> API and Webhooks -> Personal Access Tokens and create a token.
  2. Copy the whole token. Do not cut it short.
  3. In the plugin, open the Connection tab and paste it into Personal Access Token.
  4. Click Save.
  5. Click Test Connection. Connection Status shows Connected, your Account, the Time Zone, the Booking Method and the number of Bookable Event Types.

Important

Keep the token private. Anyone who holds it can act as your Calendly account.


Adding the Calendar

Put the {calendlyscheduler} tag where the calendar should appear. It works in the text of an article and in the Miscellaneous Information field of a contact. Anywhere else the tag is removed and nothing shows.

{calendlyscheduler}
{calendlyscheduler event=ABC123 days=21 title="Book a Call" intro="Pick a time that suits you."}
AttributeWhat It DoesDefaultOptions
eventOffers only these event types. Separate several ids with commas.The event types chosen in the pluginUp to 10 ids of letters, numbers, hyphens and underscores
daysHow many days ahead visitors can book.Days Ahead setting3 to 30
titleHeading shown above the calendar.NoneText, up to 120 characters
introShort text shown under the heading.NoneText, up to 300 characters

Put a value that contains spaces in double quotes. Other attributes are ignored.

Tip

The Event Types list in the plugin shows the event types in your account. Pick the ones to offer there, or leave it empty to offer every active, free event type.


Settings

Connection

SettingWhat It DoesDefaultOptions
Connection StatusA live check of your Calendly account, run each time the form opens. Test Connection refreshes it.NoneRead only
Personal Access TokenThe token from Calendly.EmptyUp to 2048 characters
Booking MethodHow a booking is made. Book in This Page creates it through the Calendly Scheduling API. Single-Use Calendly Link creates a one-time link and the visitor finishes on Calendly.Book in This Page (Scheduling API)Book in This Page (Scheduling API), Single-Use Calendly Link

Booking Defaults

SettingWhat It DoesDefaultOptions
Event TypesEvent types offered when a tag does not choose its own. Save the token first to load the list. Paid and secret event types are never offered. If Calendly cannot be reached when the settings open, the event types you saved stay in the list, so saving does not clear them.Empty (every active, free event type)Event types in your account
Event Type Choice StyleHow visitors pick an event type when there are several.Radio ButtonsRadio Buttons, Select Field
Days AheadHow many days into the future visitors can book.143 to 30
Time Slot SpacingThins out the list of times.All Times from CalendlyAll Times from Calendly, Every 15 Minutes, Every 30 Minutes, Every Hour
Time Zone Shown FirstThe time zone used when the calendar opens. Visitors can switch with a button under the time zone line.Visitor's Browser Time ZoneVisitor's Browser Time Zone, Calendly Account Time Zone
Require Phone NumberMakes the phone number required. A number that starts with a plus sign and country code is also sent to Calendly for text reminders.NoYes, No
Show Question FieldShows the event type's own custom question as a text box. A question Calendly marks as required is always shown.YesYes, No
Confirmation MessageAn extra sentence shown after a booking succeeds.EmptyText
Consent Checkbox TextWhen filled in, visitors must tick a box with this text before booking.EmptyText
CaptchaAsks visitors to pass a captcha before the booking is made. See Captcha.Do Not UseDo Not Use, or an enabled captcha plugin
Show Cancellation PolicyShows your cancellation policy in the details step, above the book button.NoYes, No
Require AgreementVisitors must tick a box agreeing to the policy. Shown when Show Cancellation Policy is Yes. If the policy text is empty, booking is never blocked.NoYes, No
Policy TextThe policy itself. Calendly has no policy text to pull, so write it here. Basic formatting is kept.EmptyEditor text
Lookup Cache (Minutes)How long the event type list and account time zone are remembered. Available times are cached for one minute only.101 to 120

Display

SettingWhat It DoesDefaultOptions
Load Default StylesLoads the plugin stylesheet. Turn it off if your template already styles the calendar through a layout override.YesYes, No
Fallback Contact TextShown instead of the calendar when online booking is unavailable, for example your phone number.EmptyText

Troubleshooting

SettingWhat It DoesDefaultOptions
Debug LogWrites each request to Calendly and its reply to a log file. See Troubleshooting.NoYes, No

How Visitors Book

  1. If there is more than one event type, the visitor picks one under Choose a Meeting Type.
  2. The visitor picks a day under Choose a Day and a time under Choose a Time.
  3. The visitor enters their details under Your Details and clicks Book This Time.

A note above the fields reads All fields are required unless marked optional. The phone field is marked Phone (Optional) unless Require Phone Number is Yes.

A confirmation, You Are Booked, replaces the form. Calendly emails the details.

A visitor can make 3 bookings in 10 minutes. After that the form asks them to wait and try again.


Temporary Errors

If Calendly is briefly unavailable while a visitor loads times, the calendar shows a message and keeps the meeting type picker on screen. The visitor can choose again without reloading the page. When the page offers only one meeting type, the picker is hidden and the visitor sees the error instead.

Keyboard and Screen Readers

  • The whole calendar works from the keyboard.
  • After an error, or when a day has no times, focus moves to the status message so a screen reader reads it.
  • An invalid field, such as a badly formed email address, shows an error linked to the field.
  • The days and the previous and next buttons have names a screen reader can read.

Set Booking Method to Single-Use Calendly Link if your Calendly plan cannot use the Scheduling API.

The visitor picks an event type, a day and a time as usual. One More Step then shows a Continue to Calendly (Opens in a New Tab) link. The visitor finishes the booking there, with name and email filled in. Each link works once.


Captcha

Enable a captcha plugin under System -> Plugins first. Then choose it in Captcha. Visitors must pass it before booking.

Warning

Keep the captcha plugin's Access set to Public. If it is limited to some access groups, the captcha stays required for everyone else and their bookings fail.


Template Override

To change the markup of the calendar, copy the layout into your template:

plugins/system/calendlyscheduler/layouts/calendlyscheduler/calendar.php
templates/YOUR_TEMPLATE/html/layouts/calendlyscheduler/calendar.php

Your copy wins over the plugin's own file. If you use a captcha, keep the captcha block from the plugin's layout in your copy. Set Load Default Styles to No if your template supplies the styling.


Languages

The plugin includes translations for 22 languages: Arabic, Chinese (Traditional), Danish, Dutch, English (UK), English (US), Finnish, French, German, Greek, Hebrew, Italian, Japanese, Norwegian Bokmål, Persian, Polish, Portuguese (Brazil), Portuguese (Portugal), Russian, Spanish, Swedish and Turkish. The calendar and the plugin settings use the translation that matches the language Joomla is showing.


Troubleshooting

What You SeeMeaningFix
Not connected yet. Add your token, save, and the status appears here.No token is saved.Paste the token and save.
Calendly rejected this token. Check it, then save again.Calendly answered 401.Paste the complete token again. Create a new one if it was revoked.
Calendly could not be reached or returned an error. Try again in a moment.Any other error code from Calendly, or no reply.Click Test Connection again. Turn on Debug Log to see the code.
Calendar missing, only the fallback text showsThe plugin is not connected, or the account cannot serve bookings.Open the plugin and check Connection Status.
The yellow message The "System - Calendly Scheduler" plugin is not connected yetYou are logged in as a user who can manage plugins. Visitors do not see it.Add the token.
That time was just taken. Please choose another.Calendly answered 409, or 400 for a time that is gone.Choose another time.
Too many attempts. Please wait a few minutes and try again.The booking limit, or Calendly answered 429.Wait and try again.
Something went wrong on our side.Calendly returned another error, such as 403 (the plan does not allow the Scheduling API) or 404.Check your Calendly plan. Switch Booking Method to Single-Use Calendly Link if the plan has no Scheduling API.
Your session expired. Please reload the page and try again.The booking form token was not accepted.Reload the page.

Page Cache

The calendar works with Joomla page caching or a cache plugin on. After changing the plugin settings, clear the Joomla cache and any server or CDN cache so the page shows the new settings.

Debug Log

  1. Set Debug Log to Yes and save.
  2. Repeat the action that fails.
  3. Open administrator/logs/calendlyscheduler-debug.log.php. Each request to Calendly and its reply is listed with the status code.
  4. Set Debug Log back to No.

The token, names, email addresses, phone numbers and answers are masked, including email addresses inside error details. Replies longer than 2 KB are cut. Errors are also written to administrator/logs/calendlyscheduler.log.php, with the same masking.


Uninstalling

Open System -> Manage -> Extensions, search for System - Calendly Scheduler and click Uninstall. Remove any {calendlyscheduler} tags from your content first. Without the plugin the tag shows as plain text.

Still stuck? Our team can help.

Back to Top