Title: ASB Calendar Advance
Author: asobit
Published: <strong>September 30, 2026</strong>
Last modified: September 30, 2026

---

Search plugins

![](https://ps.w.org/asb-calendar-advance/assets/banner-772x250.png?rev=3720992)

![](https://ps.w.org/asb-calendar-advance/assets/icon-256x256.png?rev=3720992)

# ASB Calendar Advance

 By [asobit](https://profiles.wordpress.org/asobit/)

[Download](https://downloads.wordpress.org/plugin/asb-calendar-advance.2.18.2.zip)

 * [Details](https://wordpress.org/plugins/asb-calendar-advance/#description)
 * [Reviews](https://wordpress.org/plugins/asb-calendar-advance/#reviews)
 *  [Installation](https://wordpress.org/plugins/asb-calendar-advance/#installation)
 * [Development](https://wordpress.org/plugins/asb-calendar-advance/#developers)

 [Support](https://wordpress.org/support/plugin/asb-calendar-advance/)

## Description

ASB Calendar Advance lets you add a modern, AJAX-powered event calendar to any post
or page with a simple shortcode. It is fully responsive, supports swipe navigation
on mobile, and includes a robust caching system for fast page loads.

#### Key Features (Free)

 * **Month Calendar View** – Display a full month calendar with event strips
 * **Japanese Holidays** – Built-in holiday auto-coloring with holiday names (computed
   locally, no external requests)
 * **ICS Feed** – Let visitors subscribe to your events from Google Calendar, Apple
   Calendar or Outlook
 * **Custom Post Type** – Dedicated “Event” post type or use standard posts
 * **Category Colors** – Assign colors to categories for visual event identification
 * **Weekday & Holiday Labels** – Configure regular labels with weekday rules and
   exceptions
 * **Text Color Rules** – Set custom text colors for holidays and specific dates
 * **Tooltip Display** – Hover tooltips with event excerpts
 * **Navigation Limits** – Restrict how far users can navigate forward/backward
 * **Mobile Friendly** – Touch swipe support for month navigation
 * **Server-Side Caching** – Intelligent transient caching with configurable duration
 * **Gutenberg Block** – Visual block editor support as an alternative to shortcodes
 * **Secure** – Nonce verification, capability checks, input sanitization, and output
   escaping throughout
 * **Performance Optimized** – Deferred script loading, server-side caching, and
   minified assets

#### Shortcode Usage

    ```
    [asbcala_calendar] - Display the month calendar
    ```

#### Pro Features

The Pro version adds advanced features for business and professional use:

 * Simple (date-only) calendar view, and an upcoming-events list view with paging
   and a category filter
 * Rokuyo (Japanese traditional calendar) display with auto-fetch
 * Business hours display per day with date-specific overrides
 * Daily notice / memo for specific dates
 * Google Calendar integration button
 * Multi-event and recurring event support
 * Today Widget (floating schedule display)
 * Design themes (Modern, Simple)
 * Weekday language selection
 * Month digit background
 * Permission settings for user roles
 * PWA integration
 * License management

#### Languages

 * Japanese (ja) – Fully translated
 * English – Default

## Screenshots

[⌊Front-end month calendar on a clinic site: closed days and multi-day events⌉⌊Front-
end month calendar on a clinic site: closed days and multi-day events⌉[

Front-end month calendar on a clinic site: closed days and multi-day events

[⌊The same month calendar on a restaurant site, with category colours⌉⌊The same 
month calendar on a restaurant site, with category colours⌉[

The same month calendar on a restaurant site, with category colours

[⌊Events in the WordPress admin⌉⌊Events in the WordPress admin⌉[

Events in the WordPress admin

## Blocks

This plugin provides 1 block.

 *   ASB Calendar

## Installation

 1. Upload the `asb-calendar-advance` folder to the `/wp-content/plugins/` directory,
    or install directly from the WordPress plugin repository.
 2. Activate the plugin through the ‘Plugins’ menu in WordPress.
 3. Go to **ASB Calendar** in the admin sidebar to configure settings.
 4. Create events using the “Events” post type, or use standard posts with calendar
    date fields.
 5. Add the shortcode `[asbcala_calendar]` to any post or page.

#### Quick Setup

 1. Navigate to **ASB Calendar > Event Display** and tick your event sources under “
    Event Source” (Events, Posts, or both).
 2. Go to **ASB Calendar > Design UI** and choose which categories to display in the
    legend.
 3. Create an event post and set the start/end dates in the Calendar Event Details 
    meta box.
 4. Add `[asbcala_calendar]` to a page and preview.

## FAQ

### How do I display the calendar?

Use the shortcode `[asbcala_calendar]` in any post or page. You can also use the
Gutenberg block “ASB Calendar” in the block editor.

### Can I use regular posts instead of the Event post type?

Yes. Go to ASB Calendar > Event Display and tick “Posts” under “Event Source” (leave“
Events” ticked as well to use both). The calendar date fields will appear on whichever
post types you select.

### How do I set event colors?

Each category or tag can have a custom color. Go to Posts > Categories (or Events
> Event Categories) and edit the category to set its calendar color.

### How do I control which categories appear on the calendar?

Go to ASB Calendar > Design UI and select the categories you want to display under“
Categories to Display.”

### Does it work with page builders?

Yes. The shortcode `[asbcala_calendar]` works with any page builder that supports
WordPress shortcodes.

### How does the caching work?

The plugin caches event data using WordPress transients. Caches are automatically
cleared when you create, edit, or delete events. You can also configure the cache
duration in ASB Calendar > Advanced Settings.

### Does the plugin support Japanese national holidays?

Yes. Enable “Holiday Auto-Coloring” under Design UI > Specific Days (or during the
setup wizard). Holidays are computed inside the plugin — fixed dates, Happy Monday
rules, equinox days, substitute holidays — so no external service is contacted. 
Tapping a holiday date also shows the holiday name.

### Can visitors subscribe to my events from their own calendar app?

Yes. Enable the ICS feed under Advanced Settings > Feed / Other, then share the 
feed URL. Google Calendar, Apple Calendar (iPhone/Mac) and Outlook can subscribe
to it. Only published events are included.

### Does the free version make external requests?

No. The free version does not make any external HTTP requests. All functionality
is self-contained, including the built-in Japanese holiday data.

### Does the plugin bundle third-party libraries?

No. Everything in the package is the plugin’s own code. Each `.min.js` and `.min.
css` file is a compacted copy of the readable file of the same name that ships next
to it.

## Reviews

There are no reviews for this plugin.

## Contributors & Developers

“ASB Calendar Advance” is open source software. The following people have contributed
to this plugin.

Contributors

 *   [ asobit ](https://profiles.wordpress.org/asobit/)

[Translate “ASB Calendar Advance” into your language.](https://translate.wordpress.org/projects/wp-plugins/asb-calendar-advance)

### Interested in development?

[Browse the code](https://plugins.trac.wordpress.org/browser/asb-calendar-advance/),
check out the [SVN repository](https://plugins.svn.wordpress.org/asb-calendar-advance/),
or subscribe to the [development log](https://plugins.trac.wordpress.org/log/asb-calendar-advance/)
by [RSS](https://plugins.trac.wordpress.org/log/asb-calendar-advance/?limit=100&mode=stop_on_copy&format=rss).

## Changelog

#### 2.18.2

 * Changed: the tooltips – event details on the month calendar and the tooltip on
   a date – are now drawn by the plugin itself. They used to be built on Tippy.js
   6.3.7 and Popper 2.11.8. Tippy.js is no longer maintained upstream, so both have
   left the package, which now holds no third-party code. A page with a calendar
   loads two scripts and a stylesheet fewer: about 23KB over the wire instead of
   37KB, counting the new tooltip code.
 * Improved: moving the pointer across the calendar no longer flashes a tooltip 
   at every event it crosses; the first one waits a moment, and once one is open
   the next opens at once. On a touch screen, scrolling the page leaves an open 
   tooltip where it is, and a tap elsewhere closes it. A tooltip taller than the
   room around it scrolls inside instead of running off the screen. It fades and
   lifts in and out, except for visitors whose system asks for reduced motion, the
   arrow now shares the box’s shadow, and Escape closes it.
 * Improved: an open tooltip stays on its event or date when a smooth-scrolling 
   or parallax script keeps moving the page after the scroll itself has ended. Those
   scripts move the page without telling anyone, so the old tooltip was left hanging
   over the wrong day.
 * Fixed: on a holiday that was also today, the date number lost the holiday colour
   and turned dark, while the holidays either side stayed red. The “today” badge
   cleared the date’s own colour so that its number would read well on the badge.
   The number now takes the date’s colour whenever it reads well on the badge – 
   the default yellow badge with the holiday red does – and keeps the badge’s own
   text colour on a badge that is itself dark or red. The settings preview follows
   the same rule.
 * Fixed: the holiday name that appears when the pointer rests on a holiday had 
   not appeared since 2.18.0. The small replacement for jQuery did not handle `mouseenter`/`
   mouseleave` listened for on a parent element, which jQuery quietly turns into`
   mouseover` / `mouseout`; it does the same now, and a test compares it with jQuery
   itself.
 * Note for site customisations: the tooltip’s class names changed. `.tippy-box`
   is now `.asbcala-tip` (`.asbcala-tip-light` for event details, `.asbcala-tip-
   hours` for the tooltip on a date) and `.tippy-content` is now `.asbcala-tip-content`.

#### 2.18.1

 * Fixed: tapping the date or the calendar icon on the “today” widget did not open
   the full-screen month calendar. Two things introduced in 2.18.0 caused it: showing
   an element that a stylesheet hides did not put a display back, and a selector
   containing `:visible` made the browser reject the whole query, which stopped 
   the rest of that function from running. Both are covered by tests now, including
   one that actually taps the widget and checks the calendar appears.

#### 2.18.0

 * Changed: the calendar no longer loads jQuery. It was the largest single piece
   of JavaScript a visitor received – 87KB of source, around 30KB over the wire –
   and on a site that shows the “today” widget the calendar is on every page, so
   jQuery was too. What the calendar actually used of it was 32 methods and three
   helpers, so it now uses a small replacement that ships inside its own script.
   Nothing about the calendar behaviour changes, and one request per page disappears
   with it.
 * Note for site customisations: the events this plugin announces – `asbcala_modal_viewed`(
   an event was opened in a modal) and `asbcala:monthRendered` – are now browser
   events. A `jQuery(document).on(...)` listener still hears them. The one difference
   is the second callback argument: it now travels as `e.detail[0]`, because a browser
   event cannot carry extra arguments the way jQuery own could. `document.addEventListener('
   asbcala_modal_viewed', function (e) { var postId = e.detail[0].post_id; })` works
   with or without jQuery.
 * Note: the other direction is not supported any more. Firing one of these events
   with `jQuery(document).trigger(...)` no longer reaches this plugin own handlers;
   dispatch a browser event instead.
 * Note: if your theme or another plugin uses jQuery without declaring it as a dependency,
   it was relying on some other plugin to load it. The correct fix is for that code
   to declare it, but the filter `asbcala_keep_jquery` (return true) restores the
   old behaviour immediately while you sort it out.

#### 2.17.2

 * Fixed: a page that placed the calendar the way this readme describes got neither
   the stylesheet nor the script. When deciding whether to load its assets the plugin
   only looked for the original `[asbcala_shortcode]` spelling, so a page built 
   with `[asbcala_calendar]` – the spelling in the installation steps, in the questions
   below and on the settings screen – or with the calendar block was left with a
   bare, unstyled table that never filled in its events. All three ways of placing
   a calendar are recognised now.
 * Fixed: this readme still promised an event list view and a category filter for
   the list. Neither is in this package – both belong to the separate Pro edition,
   together with the simple date-only view – so the promise has been removed and
   the Pro section now names those views. The screenshot captions and a few directions
   in the questions below have been brought into line with the screens this package
   actually has.
 * Changed: the front-end script and the stylesheet no longer carry any part of 
   the Pro edition’s displays. The PHP for them left this package in 2.16.0, but
   the script and stylesheet were never trimmed to match: they still held the whole
   event list with its paging and category filter, the simple view, and the Today’s
   Schedule widget, none of which anything in this package could reach. The script
   is now about half its former size and the stylesheet about a third. The shortcode
   also drops the attributes that belonged to those views, including `theme`, and`[
   asbcala_calendar]` draws the month calendar whatever attributes it is given.
 * Changed: the two “AJAX Loading” settings are gone from Advanced Settings. They
   only ever governed the Today’s Schedule widget, so in this package they saved
   a value that nothing read. The month calendar has always requested its events
   after the page itself has loaded, so it keeps working behind a page caching plugin
   without a switch. Values already saved are left untouched.
 * Changed: the calendar block no longer declares the view and simple-mode attributes,
   which belonged to the Pro edition’s displays.

#### 2.17.1

 * Fixed: event details could not be shown in a pop-up. The choice between opening
   the event’s own page and showing the details in a pop-up was there in the settings
   screen, and the pop-up itself was in the package, but the front end was always
   told to open the page – so picking the pop-up did nothing at all. The setting
   is now honoured, and the pop-up works as the screen describes.
 * Fixed: the colour rules for particular dates took what arrived from the form 
   without first checking its shape. A submission that sent a list where a single
   value was expected could raise a fatal error on PHP 8. Each rule and each of 
   its fields is now checked before it is touched, and a rule already stored in 
   an unexpected shape is skipped when the settings screen is drawn instead of stopping
   the page. The same check was added to the colour labels, the date lists, the 
   event sources and the calendar’s month limits.

#### 2.17.0

 * Added: static-site support (ASB Smart Builder’s Static WordPress). When the ASB
   Static Publisher is active and switched on, the calendar stops using admin-ajax
   and nonces: month data, the initial data, event details and the ICS feed are 
   served at /asb-calendar/… as plain JSON and text, the front-end script reads 
   those files, and a manifest lists them for the build tool. A daily job asks for
   a fresh build after midnight. PWA update notices are held until the static site
   has actually been published. Nothing changes on a site without the publisher.

#### 2.16.4

 * Changed: the free package no longer carries any part of the opening-hours editor.
   Until now the colour-label settings still drew an “Business Hours Override” panel
   with time fields, even though this build has nothing that shows opening hours
   on the calendar – so anything typed there simply went nowhere. The panel, and
   the code behind it, are now only in the separate Pro edition. Hours already saved
   by a site that used to run Pro are left untouched, so nothing is lost if that
   site goes back.
 * Changed: the shortcode examples in this readme no longer list the simple view,
   the event list, or their options. Those belong to the separate Pro edition and
   were never part of this package.
 * Changed: removed leftover lines that read Pro-only settings and then did nothing
   with them, and reworded comments that described this package in terms of what
   a licence unlocks.
 * Fixed: several places took a submitted field straight from the request without
   first checking it was a single value. Sending a list where a word was expected
   could raise a fatal error on PHP 8 – in the category colour field, in the event
   date and colour fields of the post editor, and in the setup wizard’s colour labels.
   Each of those now checks the shape of what arrived before touching it, and skips
   anything that is not what the form sends.

#### 2.16.3

 * No change to this package. This release fixed parts of the separate Pro edition
   only.

#### 2.16.2

 * No change to this package. This release fixed parts of the separate Pro edition
   only.

#### 2.16.1

 * Fixed: the body of a password-protected event could be read by anyone. The pop-
   up that shows an event’s details answered with the full text of any published
   post on the site, chosen by number, without asking for the password and without
   checking that the post was even a calendar entry. It now answers only for the
   post types the calendar is set to read, and a protected post is withheld until
   the password has been entered.
 * Fixed: the summary of a password-protected event was also being shown in the 
   hover box and published in the calendar feed. Protected events still appear with
   their title and dates, as WordPress does elsewhere, but their text no longer 
   travels with them.

#### 2.16.0

 * Changed: the event post type and its category taxonomy are now registered as 
   asbcala_event and asbcala_event_category. The old names were “event” and “event_category”,
   which other calendar plugins register as well. Existing events and categories
   are moved across automatically on update, and the page addresses do not change.
 * Changed: the free version no longer carries the code for the paid features. It
   used to ship them and switch them off, which is not how the plugin directory 
   works. Nothing the free version offers has been removed.
 * Fixed: weekday numbers submitted from the setup wizard are now checked against
   the seven days rather than merely cast, so a hand-made request cannot write a
   day that does not exist.

Earlier entries are not listed here: they belong to the shared history of this plugin
and its separate Pro edition, and describe releases that were never published in
this directory.

## Meta

 *  Version **2.18.2**
 *  Last updated **8 hours ago**
 *  Active installations **Fewer than 10**
 *  WordPress version ** 5.8 or higher **
 *  Tested up to **7.1.2**
 *  PHP version ** 8.0 or higher **
 * Tags
 * [calendar](https://wordpress.org/plugins/tags/calendar/)[Event](https://wordpress.org/plugins/tags/event/)
   [Japanese](https://wordpress.org/plugins/tags/japanese/)[schedule](https://wordpress.org/plugins/tags/schedule/)
   [shortcode](https://wordpress.org/plugins/tags/shortcode/)
 *  [Advanced View](https://wordpress.org/plugins/asb-calendar-advance/advanced/)

## Ratings

No reviews have been submitted yet.

[Your review](https://wordpress.org/support/plugin/asb-calendar-advance/reviews/#new-post)

[See all reviews](https://wordpress.org/support/plugin/asb-calendar-advance/reviews/)

## Contributors

 *   [ asobit ](https://profiles.wordpress.org/asobit/)

## Support

Got something to say? Need help?

 [View support forum](https://wordpress.org/support/plugin/asb-calendar-advance/)

## Donate

Would you like to support the advancement of this plugin?

 [ Donate to this plugin ](https://asobit.jp/)