Title: Kairii Sale Calendar
Author: Rob Art
Published: <strong>October 9, 2026</strong>
Last modified: October 9, 2026

---

Search plugins

![](https://ps.w.org/kairii-sale-calendar/assets/banner-772x250.png?rev=3736556)

![](https://ps.w.org/kairii-sale-calendar/assets/icon-256x256.png?rev=3736556)

# Kairii Sale Calendar

 By [Rob Art](https://profiles.wordpress.org/robword/)

[Download](https://downloads.wordpress.org/plugin/kairii-sale-calendar.0.2.1.zip)

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

 [Support](https://wordpress.org/support/plugin/kairii-sale-calendar/)

## Description

Kairii is a sale calendar for WooCommerce. Pick an occasion — World Animal Day, 
Black Friday, your shop’s birthday — set a discount off the price or off your margin,
choose the products, and Kairii does the rest: prices change at midnight on the 
first day and change back when the sale ends. Nothing is written to your products,
so there is nothing to undo.

**A calendar of occasions**

 * A library of about 1,500 dated occasions: United Nations days, awareness and 
   animal days, national days and holidays across Europe, the Americas, Asia, Africa
   and Oceania, retail days and famous birthdays. Moving dates (Easter, “4th Thursday
   of November”, festivals that follow the moon) are worked out for every year. 
   The dates are compiled and checked from public sources.
 * Add the ones you want to your calendar with one click, and add your own occasions—
   on a date, on a pattern such as “2nd Wednesday of October”, or someone’s birthday.

**Plan a sale in one place**

 * Click a day, then plan the sale under the calendar: dates (or drag across days),
   discount, products and categories, price endings, and the sale badge.
 * A live price table shows every product’s sale price, what you keep, and why a
   product is left out.
 * Tweak single products: their own percentage, a fixed price, or leave them out.
 * Yearly sales follow their occasion when its date moves.

**Never sell at a loss**

 * Your minimum profit always wins: when a discount would go below cost plus your
   minimum profit, the price stops there and the product is marked “capped”.
 * Costs come from WooCommerce’s own cost field or from a margin you set per category,
   labelled with your fulfilment provider.
 * Products with no known cost are left out of sales, coupons skip items already
   on a Kairii sale, and products whose sizes share one cost are flagged.
 * A product already on a WooCommerce sale keeps its own price, and discounts never
   stack.

**Stay ahead**

 * A “Coming up” notice and an optional morning email remind you before each occasion,
   with a promo checklist.
 * The Dashboard shows what each sale sold, from paid orders.

### Uninstall

Deactivating Kairii stops its sales at once and removes nothing.

Deleting Kairii keeps your data by default, so reinstalling picks up where you left
off. To remove everything, switch on Settings  Data  “Remove all Kairii data when
the plugin is deleted” before you delete the plugin. Kairii then removes its occasions
and sales, all of its settings (including the price list and its rules), the reminder
settings kept for each user, the price-list links on products, and the sale notes
it adds to order lines.

Your products and prices are never changed by Kairii, so there is nothing to undo.
Costs in WooCommerce’s own Cost field stay, as they are your WooCommerce data, and
your orders and their totals are untouched.

### External services

**Occasion date updates (optional).** Festivals that follow the moon ship with checked
dates for a few years at a time. When you press “Check for updates” in Kairii  Settings,
or switch on the monthly check, Kairii downloads one signed file of occasion dates
from robart-illustration.eu (https://robart-illustration.eu/wp-json/wprobarts/v1/
kairii-occasions). Nothing about your site or shop is sent — it is a plain download.
Kairii never contacts the server unless you press the button or switch on the monthly
check. Privacy policy: https://robart-illustration.eu/privacy-policy-rob-art-illustration/

### Support

Questions, bug reports and feature requests are welcome on the plugin’s support 
forum: https://wordpress.org/support/plugin/kairii-sale-calendar/

## Screenshots

[⌊The Calendar — occasions and your planned sales, month by month. Click a day to
plan a sale under the calendar.⌉⌊The Calendar — occasions and your planned sales,
month by month. Click a day to plan a sale under the calendar.⌉[

The Calendar — occasions and your planned sales, month by month. Click a day to 
plan a sale under the calendar.

[⌊The sale panel — pick the products, set a discount off the price or off your margin,
and choose the dates with one-click shortcuts.⌉⌊The sale panel — pick the products,
set a discount off the price or off your margin, and choose the dates with one-click
shortcuts.⌉[

The sale panel — pick the products, set a discount off the price or off your margin,
and choose the dates with one-click shortcuts.

[⌊Occasions — the library of dated days to add to your calendar, plus your own occasions
and birthdays.⌉⌊Occasions — the library of dated days to add to your calendar, plus
your own occasions and birthdays.⌉[

Occasions — the library of dated days to add to your calendar, plus your own occasions
and birthdays.

[⌊Margins — name who fulfils your products, set a margin per category, and keep 
a cost price list that writes into WooCommerce's own Cost field.⌉⌊Margins — name
who fulfils your products, set a margin per category, and keep a cost price list
that writes into WooCommerce's own Cost field.⌉[

Margins — name who fulfils your products, set a margin per category, and keep a 
cost price list that writes into WooCommerce’s own Cost field.

[⌊The Dashboard — what each sale sold, and the occasions coming up.⌉⌊The Dashboard—
what each sale sold, and the occasions coming up.⌉[

The Dashboard — what each sale sold, and the occasions coming up.

[⌊The sale price bar on the shop — a line under the price saying why a product is
on sale and when it ends.⌉⌊The sale price bar on the shop — a line under the price
saying why a product is on sale and when it ends.⌉[

The sale price bar on the shop — a line under the price saying why a product is 
on sale and when it ends.

## Installation

 1. Install and activate WooCommerce.
 2. Upload the `kairii-sale-calendar` folder to `/wp-content/plugins/`, or install 
    it from the Plugins screen, and activate it.
 3. Open **Kairii  Margins** and set what you make per product category (or switch 
    on WooCommerce’s cost of goods).
 4. Open **Kairii  Occasions** and add the occasions you sell around, then plan your
    first sale from **Kairii  Calendar**.

## FAQ

### Does Kairii change my product prices?

No. Kairii adjusts the price as WooCommerce reads it, only while a sale runs, and
returns it as the sale price — so your shop shows its usual crossed-out price and
sale badge. When the sale ends the normal price is simply back.

### What if a product is already on a WooCommerce sale?

WooCommerce’s sale wins and Kairii leaves that product alone.

### Can a sale go below what a product costs me?

Not when Kairii knows the cost. Set your minimum profit to at least cover payment
fees and shipping you absorb.

## Reviews

There are no reviews for this plugin.

## Contributors & Developers

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

Contributors

 *   [ Rob Art ](https://profiles.wordpress.org/robword/)

[Translate “Kairii Sale Calendar” into your language.](https://translate.wordpress.org/projects/wp-plugins/kairii-sale-calendar)

### Interested in development?

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

## Changelog

#### 0.2.1

 * Security: internal hardening.

#### 0.2.0

 * New: provider boxes continue along the row and fill the width before wrapping;
   with Kairii Pro a fresh box appears as you fill the last one, so you can list
   as many providers as you run. Without Pro you get four and a note about adding
   more.
 * Changed: the “Weekend around it” date shortcut is now “Days Either Side” and 
   sets one day before and one day after, whatever the weekday.
 * Changed: when a sale is set to repeat every year, the “Remember these products”
   tick is replaced by a note — a repeating sale already keeps its products.
 * Fixed: dropdowns and text boxes on the Margins and Settings screens were hard
   to read under a dark admin colour scheme; they now stay readable whatever the
   scheme.
 * Fixed: the “saved” confirmation messages now fade away after a few seconds instead
   of staying on screen.

#### 0.1.5

 * Fixed: products whose size attribute had a different name, such as “Size” on 
   a print made by Printful beside “Size (inches)” on one made by hand, were kept
   apart in the cost list, so the new product’s sizes never showed under the size
   you picked. Size, Sizes and Size (inches) now form one list, and every rule reaches
   them all.
 * Fixed: sizes written with inch marks, such as 16″×24″, did not match the same
   size written 16×24. Inch marks are now ignored when sizes are compared. Rules
   you already saved keep working.
 * Improved: the Dashboard’s Sales list shows 15 sales a page, in the order they
   will happen: running now, then the next one coming up, with finished one-off 
   sales last. A sale that repeats every year shows its next dates, and a one-off
   sale that is over says Ended.
 * Improved: on the Catalogue, “By product” now shows only the product view; the
   list of all occasions belongs to “By occasion”.

#### 0.1.4

 * New: linking products or categories to an occasion in the Catalogue also adds
   them to that occasion’s existing sales, and Save says which sales changed. Kairii
   only adds, never removes, and a sale for all products is left as it is.
 * New: the Dashboard’s Sales list has a Products column showing what each sale 
   covers: all products, its categories, or how many single products.
 * Improved: Kairii’s own icons in the header bar, the Settings cards and the Licence
   card.
 * Improved: the manual covers editing an occasion’s date, sales linked from the
   Catalogue and the new Products column.

#### 0.1.3

 * Changed: Kairii now comes with ten days every shop knows: New Year’s Day, Valentine’s
   Day, International Women’s Day, Easter Sunday, Halloween, Singles’ Day, Black
   Friday, Cyber Monday, Christmas Day and Boxing Day. The full library of more 
   than 1,500 awareness days, national days, festivals and birthdays, with its date
   updates, is part of Kairii Pro.
 * Changed: a sale runs once, on the dates you set. Repeating a sale every year 
   is part of Kairii Pro, and the sale panel says so where the option sits.
 * New: change an occasion’s date and how it repeats from its Edit form on the Occasions
   screen.
 * New: mark a new occasion as someone’s birthday straight from the calendar, as
   well as on the Occasions screen.
 * New: a bar under the product price says why it is on sale, for example “World
   Animal Day sale · up to 20% off · ends Monday 5 October”. Switch it off in Settings.
 * New: a ✕ on the calendar’s day panel removes an occasion added by mistake.
 * Changed: a new occasion starts with no sale. Sales show as amber lines on the
   calendar, and as a white line on today’s square.
 * Changed: one row of the cost list or price list can match several values, for
   example ePub, PDF and MOBI together.
 * Improved: the Upgrade page shows the dashboard and the calendar, the upgrade 
   window shows its whole picture, and Kairii has its own menu icon and logos.
 * Fixed: the “Add your own occasion” form filled in today’s date, so an occasion
   saved without picking one landed on today. The date now starts empty.
 * Fixed: occasions whose sale covers all products showed “Nothing linked” on the
   Occasions and Catalogue screens, and were flagged as gaps. They now say “All 
   products”.
 * Fixed: the calendar’s weekday headings could start on the wrong day.
 * Fixed: occasion names with an apostrophe could show as ’.

#### 0.1.2

 * New: cost price list — one row per size with the provider, the categories that
   sell it and what it costs; written into WooCommerce’s own Cost field and kept
   in step whenever a product is saved.
 * New: one row can cover several categories, or every product in a category (“Any
   product”), such as ePubs.
 * New: one switch per product, “Kairii list” or “Set by hand”, above the variations
   list, with a note under each size.
 * New: price list in Kairii Pro — standard selling prices per size, fixed or worked
   out from cost, written into the Regular price.
 * New: WordPress Dashboard card showing what is celebrated today, sales running
   now and what is next on your calendar.
 * New: User Manual, Read Me and Licence viewer, plus fuller sidebars with how-to
   text and running totals on every screen.
 * New: Upgrade page and pop-up overview of Kairii Pro.
 * New: Data card in Settings, and a clean uninstall that removes Kairii’s data 
   only when you ask it to.
 * New: Support and Debug Information sections in the Settings sidebar.
 * Improved: the “Coming up” notice can be snoozed per occasion or as a whole, coming
   back after half the time left.
 * Fixed: the calendar no longer suggests a sale for an occasion that already has
   one.
 * Fixed: “Copied!” showed before anything was copied.
 * Fixed: running sales and results now refresh straight after a sale is saved or
   deleted.
 * Security: every request handler checks its nonce and permission itself, and all
   input is sanitised and output escaped.

#### 0.1.1

 * New: sale calendar with a planning workbench under it — dates, discount off price
   or off margin, products and categories, price endings, sale badge, live price
   table and per-product tweaks.
 * New: occasion library of about 1,500 dated days in sections (International, Europe,
   Americas, Asia, Africa, Oceania, Birthdays, Retail), plus your own occasions;
   add any to your calendar with one click.
 * New: Catalogue screen to link products to occasions, by occasion or by product,
   with name-based suggestions and copying.
 * New: money safeguards — minimum profit always wins, no discount without a known
   cost, coupons skip sale items, and a warning when sizes share one cost.
 * New: Margins screen with category margins, sale defaults and fulfilment providers.
 * New: “Coming up” reminders on the Dashboard and an optional email digest.
 * New: optional signed occasion-date updates.
 * New: Dashboard with live sale status and what each sale sold.
 * New: Settings screen with system status.

## Meta

 *  Version **0.2.1**
 *  Last updated **4 days ago**
 *  Active installations **Fewer than 10**
 *  WordPress version ** 6.2 or higher **
 *  Tested up to **7.1.3**
 *  PHP version ** 8.0 or higher **
 * Tags
 * [calendar](https://wordpress.org/plugins/tags/calendar/)[discount](https://wordpress.org/plugins/tags/discount/)
   [sale](https://wordpress.org/plugins/tags/sale/)[schedule](https://wordpress.org/plugins/tags/schedule/)
   [woocommerce](https://wordpress.org/plugins/tags/woocommerce/)
 *  [Advanced View](https://wordpress.org/plugins/kairii-sale-calendar/advanced/)

## Ratings

No reviews have been submitted yet.

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

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

## Contributors

 *   [ Rob Art ](https://profiles.wordpress.org/robword/)

## Support

Got something to say? Need help?

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