0saas

Job ticket 618034 · consumer · almanac page · no subscription

Fantastical parses plain words into events. A free model can write the plain words.

This page is an almanac. Paste your commitments as you'd say them and a free-tier model writes the event-template table — cadence, duration, alert lead traced to your real logistics, and a quick-add sentence per event that Fantastical, Google Calendar or any parser accepts exactly as typed. A second prompt lays the week grid with conflicts named, nothing silently dropped. No calendar account is connected; the almanac is paper you copy from.

Fantastical is a trademark of Flexibits Inc. This is an independent, unaffiliated comparison built on Flexibits' own pricing page, linked below and re-read every thirty days.

Almanac table — rendered in this browser

Source: noneRendered: 0Uploaded to 0saas: nothing

Sample data is illustrative, not a claim about Fantastical. Every Fantastical figure on this page comes from the linked pricing page, read 2026-09-27.

The prompt pack

Two prompts, each mapped one-to-one onto a Fantastical feature you are currently rationed on. Run them from this page with a free key, or copy them into any free chat model — the text is identical either way, and it is printed in full at the bottom of this section so it survives this site.

Loading the pack from tools.json… If this fails, the full prompt text is still readable below.

One-time unlocks only, never a subscription. If a price ever appears here it was read from Stripe in that request, not typed by hand. An unlock is client-side gating, not secure payment verification: it is stored in this browser and cannot prove payment to anyone else.

What Fantastical's own pricing page says

Read from flexibits.com/pricing on 2026-09-27. Fields we could not read are marked unconfirmed rather than filled in with a plausible number.

Fantastical Free vs Individual vs this page — verified 2026-09-27
The jobFantastical FreeIndividual (US$4.75/mo annual)This page + a free-tier model
PriceUS$0 — includes the famous parser, all views, tasksUS$4.75 /mo billed annually, or US$6.99 monthly; 14-day trialUS$0 forever. A free-tier key costs nothing; the prompts are yours.
Natural-language entryYes — Fantastical's own free tier has itYesInverted: prompt 1 writes the parseable sentences, so ANY calendar — theirs included — gets the benefit
Reusable event definitionsPremium-boundary unconfirmed in our capture — we won't guess'All Premium features', incl. Fantastical Scheduling, per the cardsThe template table IS the definition set: five fields + a quick-add line, exported as CSV
Week planning judgmentA view, not a judgmentViews + scheduling toolingPrompt 2's grid: placed or bumped-with-receipt, conflicts named the day they happen

What this replaces, and what it does not

A displacement claim you cannot substantiate is a lie with good typography. This is the whole scope, including the parts where Fantastical wins.

Replaced: event authoring

Templates with cadence, duration, alert leads traced to your stated logistics, invite copy where others attend — and the type-ready quick-add sentence.

Replaced: the weekly placement decision

The grid puts commitments where your stated energy says they survive, and names every squeeze in a watch column instead of letting the view flatter you.

Replaced: template portability

CSV export means your event definitions outlive any one calendar app — including this page.

NOT a calendar

Nothing here syncs, alerts, or remembers your events. The almanac writes inputs FOR your calendar; the calendar remains the machine that rings.

NOT booking infrastructure

No openings, no proposals, no booking links — Fantastical Scheduling and its kin need live availability. (This catalog's Calendly page covers booking policy as documents; different desk.)

NOT a claimed feature table

Where Flexibits' premium boundary didn't print in our capture, this page says 'unconfirmed'. An invented comparison row would be the exact sin this site exists to refuse.

The prompts, in full, as text

Copy these into any model. They are the product; the page around them is convenience. Each block is the exact system prompt the interactive runner sends, plus the user-message template.

Prompt 01 — 1. Event template table · fantastical-event-templates v1.0.0 · best ally: Groq Cloud — free tier · llama-3.3-70b-versatile

Replaces: The premium template-and-power layer, inverted: reusable event definitions with a quick-add sentence any natural-language parser (Fantastical's free tier included) accepts as typed.

Why this model: Each template is a bounded five-field transformation with a strict output sentence format; low temperature on a fast instruct model keeps quick-add lines parseable instead of poetic, and the whole table is one cheap request. Fallback ally: Copy-Paste Relay.

System prompt (1921 chars):

You write calendar event templates from a person's plain-language commitments. Your product is precision: every template ends in a quick-add sentence that a natural-language calendar parser accepts exactly as written.

Return ONLY one JSON object. No markdown fences, no commentary, no preamble.

{
  "kicker": string (max 8 words),
  "title": string (max 8 words),
  "columns": [ { "label": "event" }, { "label": "cadence + duration" }, { "label": "alert lead" }, { "label": "invite copy" }, { "label": "quick-add line" } ],
  "rows": [ [ string (event name, <= 6 words), string (cadence and duration exactly as stated or 'you decide', <= 10 words), string (alert timing derived from the person's stated travel/prep needs, or 'none stated', <= 8 words), string (one sentence of invite/description text where others attend, else '—', <= 16 words), string (the type-ready line: event name, day, time, duration, location if stated — one sentence, no brackets, parseable) ] ],
  "notes": [ string (max 25 words each) ]
}

Hard rules:
1. One row per stated commitment. Never invent commitments, times, or locations — missing fields read 'you decide' or 'none stated', and the quick-add line omits what was not stated rather than inventing it.
2. Quick-add lines use unambiguous forms: named weekdays, 24h or am/pm times as the person wrote them, 'for 45 minutes' duration phrasing, 'at <place>' only when a place was stated. No relative dates ('next week'), which parse differently on different days.
3. Alert leads must trace to stated logistics ('20 min bike ride' → 'alert 30 min before'); without logistics, write 'none stated' instead of a default.
4. Recurring commitments state cadence in the note field of the quick-add line only if the person's own calendar supports it — otherwise add a table note explaining that recurrence is set inside the calendar app after the first add.
5. Write in the language of the input.

User message template:

Write my event template table. My recurring and upcoming commitments, in my own words: {{commitments}} Logistics that affect alerts (travel time, prep, kids, whatever): {{logistics}}

Variables:

  • {{commitments}} — Commitments, plain words (max 3000 chars) sample data shipped with the tool
  • {{logistics}} — Logistics affecting alerts (max 800 chars) sample data shipped with the tool

Output schema (the answer must match this exactly):

{ "type": "object", "required": [ "columns", "rows", "notes" ], "properties": { "kicker": { "type": "string" }, "title": { "type": "string" }, "columns": { "type": "array" }, "rows": { "type": "array", "minItems": 3, "maxItems": 20 }, "notes": { "type": "array", "minItems": 1 } } }

Decoding: temperature 0.2 · max 1500 output tokens · responseMimeType application/json · budget ~900 in / ~800 out per table · cost per run: 1 request, occasionally — templates change when life does, not weekly. A rounding error on Groq's published 1,000 requests/day base.

Prompt 02 — 2. Week grid · fantastical-week-grid v1.0.0 · best ally: Google Gemini API — Free usage tier · gemini-2.5-flash-lite

Replaces: The planning judgment power-calendar users buy tooling for: where commitments actually land this week, conflicts named, against your own stated energy — as a table, not a synced view.

Why this model: The grid is constraint placement with honesty rules — every commitment placed or explicitly bumped with a reason, nothing silently dropped. JSON mode holds the day-by-day table; low temperature keeps it a plan instead of an aspiration. Fallback ally: Copy-Paste Relay.

System prompt (1468 chars):

You lay one week of a person's commitments into a grid, against their own stated energy and priorities. You are a placement clerk with one law: nothing disappears. Every stated commitment is either placed or listed as bumped with a reason.

Return ONLY one JSON object. No markdown fences, no commentary.

{
  "kicker": string (max 8 words: the week, if dated),
  "title": string (max 8 words),
  "columns": [ { "label": "day" }, { "label": "fixed" }, { "label": "placed by this plan" }, { "label": "watch" } ],
  "rows": [ [ string (day name), string (immovable items with times, verbatim from input, or '—'), string (what this plan places there and why in <= 14 words, or '—'), string (<= 12 words: the day's risk — a squeeze, a conflict, a low-energy slot loaded too heavy — or '—') ] ],
  "notes": [ string (max 28 words each) ]
}

Hard rules:
1. Exactly 7 rows, Monday through Sunday (or the person's stated week shape).
2. Fixed items are copied verbatim with their times; never move what the person called fixed.
3. Conflicts are named in the watch column the day they occur, not smoothed. Two things at once is a fact, not a formatting problem.
4. First note lists anything bumped out of the week entirely, with its reason — the nothing-disappears law's receipt. If nothing was bumped, say so.
5. Respect stated energy ('dead after 21:00' means nothing thoughtful lands there). Preferences you were not told do not exist.
6. Write in the language of the input.

User message template:

Lay out my week. Fixed commitments (with times): {{fixed}} Everything wanting a slot this week: {{flexible}} My energy and priorities, honestly: {{energy}}

Variables:

  • {{fixed}} — Fixed, with times (max 1500 chars) sample data shipped with the tool
  • {{flexible}} — Wants a slot (max 1500 chars) sample data shipped with the tool
  • {{energy}} — Energy + priorities (max 600 chars) sample data shipped with the tool

Output schema (the answer must match this exactly):

{ "type": "object", "required": [ "columns", "rows", "notes" ], "properties": { "kicker": { "type": "string" }, "title": { "type": "string" }, "columns": { "type": "array" }, "rows": { "type": "array", "minItems": 7, "maxItems": 7 }, "notes": { "type": "array", "minItems": 1 } } }

Decoding: temperature 0.3 · max 1300 output tokens · responseMimeType application/json · budget ~1,100 in / ~700 out per week · cost per run: 1 request a week against Gemini's free daily allowance.

Questions worth asking before you cancel

Does this need an API key?

No — copy either prompt into any free chat model and paste the JSON back; the almanac renders locally. A free Groq or Gemini key just removes the hop.

Isn't Fantastical's parser free anyway?

Yes, and this page says so plainly: natural-language event creation appears in the free column of the rows we captured. What this almanac adds is the other direction — writing the sentences once, correctly, with alert leads reasoned from your logistics — which no parser does for you.

What exactly does Premium cost?

As displayed 2026-09-27: Individual US$4.75/month billed annually or US$6.99 billed monthly; Family US$7.50/month annual; Teams US$4.75 per user/month annual; 14-day trial. Which features are premium-only beyond the cards' own lines (e.g. Fantastical Scheduling) didn't fully print in our capture, so this page marks that boundary unconfirmed.

Will the quick-add lines really parse?

They're written in the plainest patterns parsers share — named weekday, explicit time, 'for 50 minutes', 'at ' — and they're also just readable text, so the worst case is you paste a sentence and adjust a field. No line depends on any parser's cleverness.

Nothing is loaded from X or LinkedIn until you click, and no share is counted, logged or reported back to us — the buttons are plain links to each network's own share page.

Next on the ledger