Changelog
A running log of what has changed in CalendarMate.
v1.4.7
Recurring calendar events now block availability
- 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
v1.4.6
Mobile web UI improvements
- 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
v1.4.5
Edit existing booking links
- 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
v1.4.4
Custom links and branding for Supporters
- 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
v1.4.3
Admin audit log
- 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
v1.4.2
Calendar notes and delete-account FAQ
- 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
v1.4.1
Calendar invite RSVP and broadcast improvements
- 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
v1.4.0
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
v1.3.8
Expiring booking links
- 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.3.7
Timezone selector fix on booking page
- Fixed the timezone dropdown closing immediately when clicked on the booking page
v1.3.6
Expanded timezone coverage
- 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
v1.3.5
Short booking link by default
- 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
v1.3.3
WhatsApp settings bug fix
- 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
v1.3.2
WhatsApp call support
- 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
v1.3.1
Availability refresh & PWA icons
- 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
v1.3.0
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
v1.2.1
Bot protection
- Honeypot field on registration silently drops automated submissions
- Cloudflare Turnstile added to registration with server-side verification
v1.2.0
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
v1.1.1
Security & privacy hardening
- 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.1.0
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
v1.0.2
Platform admin
- Superadmin dashboard with platform metrics and trend charts
- Obfuscated accounts table with bulk delete and plan upgrade actions
v1.0.1
Payments & plan management
- Stripe pay-what-you-want checkout and webhook integration
- Free, paid, and approved plan states
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
v0.9
Personal single-user version
- Single-user scheduling with ICS calendar feed integration
- Availability configuration and shareable booking page