Support load is the real cost

The licence is not the expense. The expense is the ticket that begins “the calendar is showing the wrong dates”, three times a year, across a portfolio, each one an hour of somebody's time.

So weigh the plugin by how often it will generate that ticket and how fast you can close it. A plugin with correct recurrence handling generates fewer. A plugin that shows when a sync last worked closes them faster. Everything else is secondary to those two.

Look at the author's support forum before you standardise

Every plugin's WordPress.org page shows how many support threads were opened in the last two months and how many were resolved. That ratio is the most honest number available about a plugin.

A plugin with tens of thousands of installs, a paid tier, and a resolution rate under a third is telling you that its author is one person and is underwater. You will discover this on the day a client's site breaks, and the answer will be yours to find alone.

Licence model

Per-site subscriptions across forty clients is forty renewals, forty cards and forty conversations. Ask about agency terms before standardising — and ask specifically what happens when a client leaves: can the licence be transferred to them, and does the site keep working if nobody renews?

The answer to that last question is the one that matters. A plugin that disables features when a licence lapses is a plugin that will break a former client's site months after you stopped being responsible for it, and they will still call you.

What happens when nobody renews

Our answer, so it is on the record: nothing is disabled, nothing is deleted, no feature is withdrawn, and no fatal error is ever produced. The site keeps working; it stops receiving updates. A site you hand over and forget about does not become somebody's emergency.

The performance question, at portfolio scale

A plugin that materialises recurring events into database rows will, over a few years, add tens of thousands of rows to some of your clients' databases. On cheap shared hosting that is felt. It also shows up in migrations, backups and staging syncs — every one of which gets slower for reasons nobody attributes to the calendar.

Check the posts table on the oldest site running your current choice. It is a five-second query and it is often a surprise.

Standardise on one, and learn it properly

The strongest argument for standardising is not the discount. It is that a support ticket from any client is a problem you have already seen, with a diagnostic path you already know. That is worth more than any feature difference between the reasonable options.