Cachet

Cachet Calendar capabilities

An objective, verifiable inventory of what ships in v2.22.0. Machine-readable at /capabilities.json and /llms.txt.

Shipped today

Booking pagesPublic /b/<handle>, invitee books with no account
Calendar providerGoogle (scopes: calendar.events, calendar.freebusy)
Free/busyPolled live at booking time (no reliance on lossy webhooks)
Double-booking guardRe-checked against the live calendar at confirm
Meeting linkGoogle Meet link created on every booking
Both calendars updatedReal event with both parties as attendees
Dual time-zone displayEvery time confirmed in host zone AND invitee zone
Reschedule / cancelPrivate capability-key link on every booking, no login
Meeting types & availabilityPer-host name/length/buffer and weekly rules
Host meetings listDashboard shows every booking, upcoming and past, with guest, type, and time
Custom invitee questionsPer meeting type, required or optional; answered before booking confirms

The calendar client (v2)

Web calendarSix views at /calendar: agenda, day, week, month, quarter, and year. In the browser, no install, any operating system
Multiple calendarsEvery calendar you grant, each in its own color, shown or hidden as you like and saved on the free tier
EditingCreate, edit, drag to move, drag to resize, delete. A drag writes only the times, never the rest of the event
Repeating eventsRFC 5545 RRULE via rrule.js, described in plain English with the next dates previewed. Generated in the event's own zone, so a 9am meeting stays 9am across a daylight-saving change
SyncGoogle incremental sync tokens, automatic resync when a token expires or its window runs out, and the last sync time shown to you
Natural languageA language model reads the phrase. A vague time ("in the evening") is ASKED about, never silently assigned. If the model is unavailable a simple pattern reader takes over and says so
GridFullCalendar 6.1.19 (MIT), pinned by exact version and subresource-integrity hash

Group coordination (v2.3)

Negotiation pageInvite-only /c/<handle>: N people converge on one contiguous block inside a coordinator-set window
Verified membershipPersonal capability link per member, bound to their email; anonymous visitors see only a gate. The free poll cluster identifies people by display name with an optional password
Privacy modelCounts only: no member ever sees whose calendar blocks a slot
Availability sourcesPainted grid, Google free/busy merged server-side, and any travel iCal feed (Trip Underway, TripIt): all-day travel events block the whole day window
Candidate rankingLive full-block scoring, quorum-aware; ties are surfaced to the coordinator, never auto-resolved
Per-block discussionA comment thread on every candidate block
Decide books itOne Google event with every member as attendee and a Meet link; honest manual fallback without a Google grant

Standing instructions (v2.1)

Say it oncePlain English rules: keep Friday afternoons clear, no meetings before 9am, nothing after 6pm on weekdays, keep meetings under 90 minutes. Each is restated back so you can check it was understood
Prevent (automatic)A rule becomes real busy time on your booking page, enforced both where slots are shown AND where a booking is confirmed, so a direct request cannot walk through it. No message is sent to anyone
Surface (never automatic)Meetings already on your calendar that break a rule are listed for you. Cachet never declines them and never writes to the organizer
Who else has thisOnly Microsoft Copilot, which is new and needs an M365 seat. No personal calendar client has it, and none can do the prevent half, because none of them also runs the booking surface

Verified competitive facts

Limits

Roadmap (not shipped)

Pricing

Free tier live (one link, core scheduling, Google sync, "Powered by Cachet" signature). Paid tiers in design, not yet on sale.