Changelog
A running log of what has changed in CalendarMate.
v1.20
Links that stay in sync with your settings
- New booking links now automatically track your account's working days, hours, timezone, buffer, and minimum notice - change your settings once and every synced link updates immediately, no need to re-share anything
- Editing a link's own hours in the link editor switches it to "Custom" so it keeps its own settings; a Sync/Custom badge on the links list shows which links are tracking your defaults and which have been customised
v1.19
Booking form questions and longer notice
- Supporters can add up to five custom questions to their booking form ("What is your business name?"), each optional or required - answers arrive in both confirmation emails, the calendar invite, webhooks, and are stored encrypted
- Minimum notice now extends to 3, 5, or 7 days for businesses that plan further ahead
v1.18
Service-first booking
- Event types are now first-class: define named services with their own durations and descriptions ("Floor plan - 2h", "Aerial shoot - 2h"), and clients pick the service first with the length following automatically - two services can share a duration, and existing duration-based pages are unchanged
v1.17
Monochrome accents
- Onyx (black) and Chalk (white) join the accent and button colour palettes, and button text now picks black or white automatically based on the button colour - so every combination stays legible
v1.16
Clearer account tiers
- Approved accounts (granted free access) now unlock unlimited calendar feeds, while theming, branding, and custom link names are Supporter perks - anyone already using those features keeps them, and Approved users can become Supporters any time with a pay-what-you-want contribution
v1.15
Polish and quality of life
- Picking a theme now suggests a matching accent and button colour (only when you have not customised colours), the settings page tells you when a new version is available - handy if you keep CalendarMate open as a Mac or mobile web app - and mobile layouts for working hours no longer overflow
- Tidier header with icon buttons, platform admins now land on their own settings first, and the calendar feeds section stays collapsed once your calendars are set up
v1.14
Two-tone booking pages
- Supporters can pick a separate button colour from the accent, so main actions and highlights can differ - navy buttons with coral links, and every theme applies its own matching pairing when selected
v1.13
Six more themes
- Arcana, Neo-Tokyo, Catnap, Briar Rose, Biome, and Brickworks bring the collection to 23 themes plus your own custom design
v1.12
Sturdier webhooks and under-the-hood hardening
- Webhook deliveries now retry once automatically on network failures or server errors, and your settings page shows the result and time of the last delivery so you can see at a glance that your integration is healthy
- Behind the scenes: the first automated test suite, stricter validation on link updates, and rate limiting on settings saves
v1.11
Webhooks, custom themes, and a tidier settings page
- Connect CalendarMate to Zapier, Pabbly, Make, or your own systems: add a webhook URL in the new Integrations section and every booking fires a signed POST (HMAC SHA-256) to it, with a test button to check your wiring
- Supporters can now design and save their own theme - pick background, card, text, and border colours with dark and glow options, and the in-between shades are derived automatically
- Appearance and Integrations now live in collapsible sections, so the settings page stays tidy
v1.10
Eight new themes and deeper customisation
- The theme collection grows to 17 with Tech-Noir, Synthwave, Sakura, Mainframe, Fjord, Crypt, Solaris, and Final Boss - including neon glow effects, gradient buttons, and retro scanlines - and the original nine have new names to match: Overworld, Powder, Grimoire, Cryosleep, Speedrun, Druid, Neo-Noir, Event Horizon, and Tavern
- Supporters can now pick a separate heading font and hide the CalendarMate logo in the booking page footer (a small text link remains)
v1.9
Event type names and more theme options
- Give each meeting length a name - bookers see "Half-day shoot" instead of 4h on the booking page, in the day view, and on the confirmation summary
- Three new themes for Supporters - Sage, Midnight, and Cocoa - bringing the collection to nine, plus a new corner style option (Soft, Sharp, or Round) for further customisation
v1.8
Themes, fonts, and accent colours
- Supporters can now restyle their booking pages and dashboard with six built-in themes - Daybreak, Porcelain, Linen, Mist, Gallery, and After Dark - plus six font styles and ten accent colours
- Themes use fonts already on your visitor's device and add no third-party requests, keeping booking pages as private and fast as ever
v1.7
12-hour clock and longer buffers
- Booking pages now show times in 12-hour or 24-hour format automatically based on your visitor's device, with an option in your settings to force one or the other
- Buffer times between meetings now go up to 3 hours, handy for travel, setup, or breakdown time between long appointments
v1.6
Longer meeting durations
- You can now offer longer appointments - preset lengths from 15 minutes up to 8 hours, plus a custom length field for anything in between, ideal for shoots, sessions, and other long bookings
- Durations now display in hours and minutes (for example 3h or 4h 30m) across your settings, the booking page, and confirmations
v1.5
Faster booking pages and stronger link security
- Booking pages now load faster
- Booking links are more secure, and all your links are now visible in the dashboard
- Improved accuracy of dashboard booking counts
- Various security and reliability improvements behind the scenes
- Additional protections around account privacy and admin access
- The contact form now retries automatically if the email service has a brief hiccup, so a momentary glitch no longer shows an error - and your message is kept in the form if it ever needs resending
v1.4
Multiple booking links with history and revocation
- Generate as many short booking links as you like - each one is an immutable snapshot of your settings at the time of creation, with a one-year expiry by default
- All your links are listed in a history table showing the shortcode, optional label, creation date, expiry date, working hours, timezone, and available durations at a glance
- Revoke any active link instantly - anyone following it will immediately see the expired page
- Saving your settings no longer rotates your link; generate a new one only when you want to share a fresh link
- The expired page now correctly shows for both expired and revoked links
- Booking confirmation emails now share a common calendar event ID - both parties receive the same meeting invite, so the visitor’s calendar app shows proper Accept / Tentative / Decline buttons and the reply lands in your inbox
- Previously each confirmation generated an independent event, meaning neither party could RSVP or see the other’s response
- Added an optional free-text note field next to each calendar feed in your profile - useful for labelling feeds such as “Work calendar” or “Personal”
- Added a “How do I delete my account?” FAQ entry on the homepage explaining what data is held and how to request removal via the contact form
- Admin tools now keep an audit log of account actions - deletions, approvals, broadcasts, and email reveals
- Each entry is datestamped and shown in a new history list, with user emails kept obfuscated even in the log
- Supporters can now choose a custom (vanity) short link for their booking page, such as
calendarmate.app/r?c=jane-consultations, instead of a random code
- Supporters can also add their logo and a company link to the top of their booking page - this applies to all of their links straight away, including ones shared before upgrading
- Logo images are checked on save for format, size, and HTTPS to keep booking pages loading quickly and safely
- Every active booking link in your links table now has an Edit button - click it to update the link’s name, notification email, page title, description, working days, hours, timezone, buffer, minimum notice period, available durations, and meeting link without generating a new URL
- ICS calendar feeds and branding settings are preserved automatically when editing - they are managed globally in your profile settings and always reflect your latest saved values
- Settings page header no longer overflows on narrow screens — the CalendarMate wordmark collapses to the icon only on mobile, keeping the plan badge and sign-out button fully visible
- Calendar feed rows (provider selector and note field) now stack into a clean two-column grid on mobile instead of wrapping awkwardly
- Provider hint text (ICS setup instructions) wraps correctly on narrow screens rather than overflowing horizontally
- Tightened padding throughout — card bodies, the save bar, link cards, and the admin main area — to make better use of limited screen space
- Links table scrolls horizontally on mobile so all columns remain accessible without clipping
- Upgrade banner and feed provider rows stack vertically on small screens
- Repeating meetings (weekly sessions, accepted recurring invites) now correctly block booking slots — previously only the original series date was checked, so future occurrences were invisible to the availability calculator
- The ICS parser now expands RRULE entries across a 90-day window, honouring EXDATE cancellations and handling BYDAY patterns
- Resolved an issue that could cause the app to fail to load for some users
- Applied a stability fix to the build - no functional changes to the app itself
- New accounts now receive a short welcome email with their sign-in details, a reminder to save their password, quick-start steps, and a note on privacy - sending is best-effort, so it can never block registration
- Booking links that no longer work - whether the link is wrong, expired, or revoked - now show a branded CalendarMate page explaining the link is not working, suggesting the visitor ask the owner for an up to date link, and offering them their own free booking page, instead of a bare redirect
- The link edit dialog now notes that a link's custom URL stays fixed - to use a different custom URL, create a new link and revoke the old one
- Clarified the privacy policy: calendar feed URLs are now described in their own section, explaining that the ICS feed (such as Google's secret iCal address) is only read in memory to collect busy periods and then discarded
- Updated the hosting description to note that CalendarMate uses Netlify's EU edge nodes
- More accurate availability across different timezones
- Stronger privacy and security protections
- The app now updates itself automatically after each release
- Various bug fixes and improvements
v1.3
Progressive Web App
- CalendarMate is now installable on desktop and mobile as a PWA
- App shell cached for instant load; API calls always go live
- Full iOS and Android home screen support
- Refresh button on the booking page lets visitors reload calendar availability on demand
- Refresh is rate-limited to once every 30 seconds to prevent abuse
- PWA icons regenerated correctly - Mac desktop and iOS home screen icon now displays properly
- Dedicated apple-touch-icon added for iOS install prompts
- Meeting link settings now has a Video call / WhatsApp switcher
- WhatsApp mode takes a phone number and generates the
wa.me link automatically
- Booking page shows a WhatsApp call badge instead of a raw URL when WhatsApp is set
- Confirmation summary shows an “Open WhatsApp” button in green after booking
- WhatsApp link passes through to the booking confirmation email and calendar invite as normal
- Fixed a bug where switching to WhatsApp mode could clear an existing video call link if settings were saved afterwards
- Video call link is now preserved when toggling between meeting types and restored if you switch back
- Your short link (
calendarmate.app/r?c=xxxxx) is now generated automatically every time you save settings - no extra step needed
- The short link is shown as the primary booking link in your dashboard so you always have something clean to share
- The full booking URL remains visible and copyable below the short link for fallback or direct use
- Added Africa coverage for the first time: Lagos / West Africa (WAT), Cairo (EET), Johannesburg / Cape Town (SAST), and Nairobi / East Africa (EAT)
- Added Seoul (KST, UTC+9) alongside Tokyo
- Added Riyadh / Kuwait / Doha (AST, UTC+3) for the Gulf region
- Added Buenos Aires (ART, UTC-3) - distinct from São Paulo as Argentina does not observe DST
- Added Bogota / Lima (COT/PET, UTC-5) for Colombia and Peru
- Added Mexico City (CST/CDT) in the previous patch
- Fixed the timezone dropdown closing immediately when clicked on the booking page
- Set an optional expiry date on your booking link - visitors who open it after that date see a clean “this link has expired” page with your name and a prompt to contact you for an updated link
- Expiry is based on your configured timezone so the cutoff is never a surprise
- A countdown badge on your dashboard shows days remaining, turning amber inside seven days
- The permanent full URL is now hidden by default with a warning that it ignores expiry - reveal it only when you specifically need a link that never expires
v1.2
Contact & support
- Contact modal replaces bug report - covers bugs, feedback, and free access requests
- Free access request path added for users who cannot pay
- Can’t pay? link added in the app header and feed-limit banner
- Honeypot field on registration silently drops automated submissions
- Cloudflare Turnstile added to registration with server-side verification
v1.1
UX & engagement improvements
- Settings save bar with unsaved changes warning and amber pulse
- Donation nudges after first booking and after 30 days - dismissible, shown once
- Auth screen shows Get Started and Log In as equal options
- Logo always links back to the homepage
- Home page clarifies that £0 still unlocks everything
- Favicon added from the CalendarMate logo
- Visitor name and email in booking records now encrypted at rest
- Account deletion now purges all associated booking records
- Password reset token stored as a hash - raw token only ever lives in the email
- Privacy policy added
v1.0
Multi-tenancy, new brand, new domain
- Multi-user architecture with JWT auth and per-user encrypted config
- CalendarMate brand and calendarmate.app launch
- Booking notifications and password reset via email
- Landing page
- Stripe pay-what-you-want checkout and webhook integration
- Free, paid, and approved plan states
- Superadmin dashboard with platform metrics and trend charts
- Obfuscated accounts table with bulk delete and plan upgrade actions
v0.9
Personal single-user version
- Single-user scheduling with ICS calendar feed integration
- Availability configuration and shareable booking page