Scheduling: a zero is not a price, and one lifetime licence pays back in ten weeks
Scheduling software contains the best-value lifetime licence in our record and the most dangerous pricing page. The licence pays for itself in about ten weeks against the subscription it replaces, and its crossed-out comparison is one of the few that can actually be checked. The page serves a well-formed, parseable, entirely wrong number for every tier it sells. Both are worth knowing, and the second generalises far beyond this category.
Start with the good news, because this category holds the strongest one-off purchase we have measured. TidyCal sells a lifetime licence alongside a monthly subscription, and the licence costs less than three months of that subscription. Against the monthly rate it pays for itself in about two and a half months; against the cheaper annual rate, in about three and a half. For a tool you will plausibly use for years, that is a different order of decision from the usual subscription arithmetic, and it is unusual enough in software to be worth naming when it appears.
Its crossed-out comparison is also, unusually, one you can verify. The struck-through figure beside the lifetime price is exactly twelve months at the vendor's own monthly rate — so the 'before' number is not a marketing construction but a real quantity computed from a real price printed elsewhere on the same page. That is the honest form of the device, and by our count it is rarer than the alternative. The same vendor's annual plan discounts by about thirty-one per cent against twelve monthly payments, which is roughly twice the category norm of two months free.
The rest of the category is more difficult to read, and in instructive ways. Cal.com publishes only one billing state: in more than a megabyte and a half of served page there are exactly two currency figures, and both cards label themselves yearly. There is no monthly price in the document at all, so none is recorded and none is derived. It is also open source and self-hostable, which means the per-seat ladder describes the hosted product and a self-hosted installation has no per-seat price at all — a distinction no comparison table can hold.
SavvyCal prints two per-user figures next to a badge offering two months free, and does not say which billing state the figures belong to. Our read could not establish whether they are the monthly rates or the annual per-month equivalents, and rather than pick one, the record marks the billing state unresolved and carries both fields empty. That is the right call: assigning those figures to a state would be a guess about the more consequential half of the record, and the guess would be invisible once printed.
Then there is the page that produced the most serious capture problem in our records. YouCanBookMe's served markup shows a currency symbol, a zero and a per-month qualifier for every one of its four tiers — including the three that are paid. The zeroes are well-formed and parseable. An automated reader would take four clean prices off that page, and three of them would be false, presenting paid plans to the world as free.
The detail that makes it genuinely difficult is that the free tier's zero and the paid tiers' zeroes are byte-identical. There is no marker, no formatting difference and no surrounding text that distinguishes a real zero from a broken one. No parser can separate them, because at the level a parser operates there is nothing to separate. The only thing that catches it is a person knowing that a plan advertised as paid cannot cost nothing — which is judgement rather than validation, and it is why those figures were refused and no price is published for that vendor.
This failure had been anticipated. An earlier read in our records found a monitoring page serving a currency symbol and a per-month qualifier with no digits between them, and the note against it warned that the plausible next failure was a zero entering the base looking like a genuine reading. That is precisely what happened here, and it is worse, because the empty page announced its own emptiness while this one supplies a confident wrong answer.
The general lesson is short and applies well outside scheduling. A zero on a pricing page is not evidence that something is free. It can mean free, or it can mean that a figure failed to render, and the two look the same. If you meet a paid-looking tier priced at nothing, the useful response is to attempt a checkout rather than to celebrate — and if you are reading a comparison site, to wonder how it decided which zeroes to believe.
A lifetime licence that pays back in about ten weeks
It costs less than three months of the subscription it replaces — about two and a half months at the monthly rate, three and a half at the annual one. For a tool used for years that changes the shape of the decision entirely.
Its crossed-out price is one you can check
The struck-through figure is exactly twelve months at the vendor's own printed monthly rate, so the comparison is arithmetic on a published number rather than a constructed one. That is the honest form of a 'was' price and it is the rarer form.
One vendor publishes only its yearly state
More than a megabyte and a half of page containing exactly two currency figures, both labelled yearly. No monthly price exists in the document, so none is recorded and none is derived from dividing the annual one.
Another prints figures without saying what they are
Two per-user amounts beside a two-months-free badge, with no indication whether they are monthly rates or annual equivalents. The record marks the billing state unresolved and leaves both fields empty rather than guessing the more consequential half.
One page prices all four tiers at zero, three of them wrongly
A currency symbol, a zero and a per-month qualifier on every tier including the paid ones. An automated reader would take four clean prices and publish three false ones, showing paid plans as free.
The true zero and the false ones are byte-identical
Nothing in the markup distinguishes the free tier's genuine zero from the paid tiers' broken ones. No parser can separate them; only knowing that a paid plan cannot cost nothing catches it, which is judgement rather than validation.
Questions people actually search
Is a lifetime licence a good idea?
It depends on the payback period and on the vendor lasting. Where a one-off costs less than three months of the subscription it replaces, the arithmetic is unusually favourable and the main risk is the company rather than the price. Compare the one-off against the annual rate rather than the monthly one, since the annual rate is what you would realistically pay.
Why do you show no price for one of these vendors?
Because its page served a zero for its paid tiers, and we refused the figures rather than record them. Publishing them would have shown three paid plans as free, which is a worse error than showing nothing. The absence is deliberate and the reason is recorded against the vendor.
How can a comparison site tell a real zero from a broken one?
Not automatically, which is the uncomfortable answer. In the case that prompted this, the genuine zero and the false ones were identical characters in identical markup. What caught it was noticing that three of the four tiers were described elsewhere as paid. Any site publishing a suspiciously free paid tier has probably not made that check.
What should I do if a pricing page shows me a zero?
Try to buy it. A genuine free tier will take you to an account creation flow; a broken figure will usually reveal itself at the next step, or the page will show a different number on a reload or in another browser. Treat a zero on a tier that is described as paid as a rendering failure until proved otherwise.
Do you earn a commission from any scheduling vendor?
No. We hold no affiliate relationship with any vendor named on this page, and this page carries no affiliate links. Our method is on the method page.
This page publishes no absolute prices. Every quantity in it is a ratio, a count or a percentage computed from figures the vendors print, because the scheduling vendors we hold were each read in a single market while this guide appears in three editions. Records were read on 2026-09-03. Payback periods and the thirty-one per cent annual figure are our arithmetic on the vendor's own published pairs. One vendor's prices are absent entirely because its page served a zero for its paid tiers and those figures were refused rather than recorded. This page carries no affiliate links. Related: the struck-through price, when there is no price and how to read a price record. The method →
Found a price that no longer matches the vendor’s page? Tell us — corrections are dated and stay on the page.