Cachet
Cachet Calendar capabilities
Shipped today
- Public booking pages live at /b/<handle>, and an invitee books with no account.
- Google Calendar, Microsoft 365, and Outlook.com calendars appear together in the calendar client.
- iCloud and Fastmail calendars connect over CalDAV and appear alongside them in the calendar client.
- Availability is checked against Google Calendar free/busy, read live at booking time.
- Events on a connected Microsoft 365 or Outlook.com calendar also block booking times, including calendars hidden from view.
- A booking is re-checked against the live calendar when it is confirmed, so a confirmed slot is open on the calendar at that moment.
- Each booking creates a real event on the host's Google Calendar, with a Google Meet link on Meet meeting types.
- Every booking time is shown in both the host's time zone and the invitee's time zone.
- Every booking carries a private reschedule and cancel link that needs no login.
- Each host configures meeting types with a name, length, and buffer.
- Each host sets weekly availability.
- The host dashboard lists every booking, upcoming soonest first and past most recent first, with guest name, meeting type, and time in the host's zone.
- A canceled booking stays in the host's list with a Canceled label.
- Custom invitee questions can be added to each meeting type, each required or optional.
- A missing required answer is rejected before any calendar event is created.
- Each meeting type sets how many days ahead it can be booked.
- Each meeting type sets the minimum notice before a booking.
- Start times follow a step you choose, such as every 15, 20, 30, or 60 minutes.
- Each meeting type sets a buffer before and a buffer after, separately.
- Each weekday can hold up to four separate sets of hours.
- A date-specific entry replaces that weekday's hours for one date, opening or closing it.
- Each meeting type can limit bookings per day.
- Each meeting type can limit bookings per week, with weeks running Monday to Sunday.
- Each meeting type can limit bookings per month.
- Booking limits are applied again when a booking is confirmed.
- Each meeting type has its own location: Google Meet, in person, a phone call in either direction, or custom text.
- On types where the host calls the guest, the booking page asks the guest for a phone number.
- A meeting type can be offered only by direct link, and the booking page then lists the other types.
- A direct link of the form /b/<handle>?type=<id> opens that meeting type.
- Booking requests are rate limited per visitor and host page, and a limited request receives a retry-after answer.
- Google Calendar connects with OAuth, using the calendar.events and calendar.freebusy scopes.
- Every answer to a custom question appears in the host's confirmation email and on the calendar event.
- Both parties are attendees on the booked event, and Google emails each of them the invite, so the meeting lands on both calendars.
The calendar client (v2)
- The calendar client at /calendar runs in the browser on any operating system, with agenda, day, week, month, quarter, and year views over your Google calendars.
- Every calendar you grant is listed with its own color, and you can show or hide each one.
- Events are created, edited, and deleted from the client.
- Repeating events use RFC 5545 RRULE (daily, weekly, every 2 weeks, monthly, yearly) and are described back in plain English, with the next occurrences previewed before saving.
- A repeating 9am meeting stays at 9am across a daylight-saving change, because recurrence is generated in the event's own time zone.
- The client mirrors each calendar with Google's own incremental sync tokens and re-baselines automatically when a token expires or its window runs out.
- Natural-language entry keeps the event title intact.
- When a phrase is vague, such as "in the evening", natural-language entry asks for the time.
- When the language model is unavailable, a simple pattern reader takes over and the interface says so.
- The calendar grid is FullCalendar (MIT), pinned by exact version and subresource-integrity hash.
- Showing and hiding calendars is saved on the free tier.
- Drag to move and drag to resize write just the times, so moving a meeting keeps its description, attendees, and color.
- The client states when it last synced, and which calendar failed if one did.
- Natural-language entry is powered by a language model.
Group coordination (v2.3)
- Group coordination at /c/<handle> lets N people converge on one contiguous block inside a window the coordinator sets.
- Each member holds a personal capability link, and an anonymous visitor sees a gate with the title only.
- Members see aggregate counts per slot, and each person's busy times and email stay with that person.
- Members paint their availability on a grid.
- A member can add any travel iCal feed, such as Trip Underway or TripIt, and all-day travel events block the whole day window.
- Candidate blocks are ranked live by how many members are free for the whole block, with quorum shown.
- When two blocks tie at the top, both are surfaced to the coordinator to decide.
- Deciding a block books one Google event with every member as an attendee and a Meet link.
- A member's Google free/busy is merged into their availability on the server.
- Every candidate block has its own comment thread.
- When the coordinator has no Google connection, the decision still stands and every member is emailed that the coordinator will send the calendar invite.
- Membership is bound to an email, unlike the free poll cluster, which identifies people by display name with an optional password.
Standing instructions (v2.1)
- Say a scheduling rule once, in plain English ("keep Friday afternoons clear", "no meetings before 9am", "nothing after 6pm on weekdays", "keep meetings under 90 minutes"), and it keeps applying.
- Each rule is restated back in plain words so you can see it was understood correctly.
- Prevent: a rule becomes real busy time on your booking page, so nobody can book into a window you protected.
- Rules are enforced where slots are displayed and again where a booking is confirmed, so a direct request meets the same rules.
- Surface: meetings already on your calendar that break a rule are listed for you to handle.
- A meeting type longer than your duration cap shows no bookable times.
- Declining someone else's meeting, or writing to its organizer, stays your decision.
Verified competitive facts
- Fantastical has no browser-based calendar client at any tier. Source: flexibits.com, checked 2026-07-26.
- Flexibits' Fantastical MCP connector is Mac-only, running against the local app database. Source: Flexibits blog, checked 2026-07-26.
Pricing
Free tier live (one link, core scheduling, Google sync, the browser calendar, group polls with up to 3 open at a time and up to 10 people each, "Powered by Cachet" signature).