Main features
- Public booking page with title, description and slot length
- Weekly availability with minimum notice and booking window
- Google Calendar or any CalDAV server as the calendar source
- Choice of the calendar that confirmed bookings are written to
- Optional manual approval of booking requests
- Email invitations with an ICS file for the guest
- Zoom meeting link per booking, or a fixed custom video link
- Cancellation and changes to existing bookings
- Password sign-in for self-hosted instances
What Thunderbird Appointment does
Appointment is the booking-page scheduler built by the team behind the Thunderbird email client. You connect a calendar, set your weekly availability, and share a link where other people pick a free slot. The booking page carries a title, a description and a slot length; availability rules include a minimum notice period and the earliest and farthest dates a guest can book. When someone books, the event is written to the calendar you chose and both sides receive an email invitation, with an ICS file the guest can add to their own calendar.
Hosts can require manual confirmation, so a booking stays a request until they approve it, which is useful for people who do not want strangers to fill their week automatically. Video meetings can be created through the Zoom integration, one meeting per booking, or you can attach a fixed link to your own video room.
CalDAV and open standards
The main reason to choose Appointment is calendar support beyond the big two. Besides Google Calendar, it connects to CalDAV servers, the open protocol used by self-hosted calendar servers and by many calendar services outside Google and Microsoft. The product page presents this as a differentiator and stresses open standards. Tymeslot, Cal.diy and Easy!Appointments also offer CalDAV, but in Appointment it is one of only two calendar sources rather than one connector among many. If your calendar already lives on a standards-based server, Appointment avoids routing your schedule through Google.
The code reviewed does not include a dedicated Microsoft 365 calendar connector, payments or website embeds, so it is narrower than Cal.diy for people who rely on those.
Self-hosting Thunderbird Appointment
The README describes Docker as the recommended and, for now, only supported way to build and run the application. The Compose file starts quite a few containers: the FastAPI backend, Celery worker, beat and Flower processes for background jobs, the Vue frontend, PostgreSQL 17, Redis Stack and Mailpit for catching email during development. A real deployment needs an SMTP server for invitations, and Google Calendar and Zoom each need OAuth credentials that you register yourself.
Authentication on Thunderbird’s own service runs through its OpenID Connect provider, Thunderbird Accounts. For self-hosting, the README points to the built-in password login, which it says is meant for development and testing but can also be used on a self-hosted instance. The first admin is created by enabling first-time registration and putting your address on an allow list in the backend configuration.
Be aware that the documentation is written mainly for developers. The technical docs are marked as a work in progress, and there is no separate production installation guide, so you will need to adapt the development setup yourself.
Hosted version
Thunderbird offers Appointment as part of Thundermail (Thunderbird Pro), a paid subscription that bundles it with Thundermail email and the Send file-sharing service. The service is in beta, offered to people on a waitlist, and the product site says the full launch is expected in 2026.
Limitations
Self-hosting is the weak point: many moving parts, developer-oriented documentation and a password login that the project itself frames as a testing feature. The feature set is focused on a single host’s booking page, without team scheduling, payments or embeds. The hosted version is not yet generally available.
Who it suits
Appointment suits people who keep their calendar on a CalDAV server, value a project run by the Thunderbird team, and need a straightforward personal booking page with an approval step. Those willing to wait can use the hosted version through a Thundermail subscription; others should be comfortable running a Python and Docker stack. For a simpler self-hosted install with CalDAV support see Tymeslot, and the Calendly alternatives page compares all the options.
License details
MPL-2.0. MPL-2.0 is a file-level copyleft license. The hosted service is part of the paid Thundermail subscription, currently offered through a waitlist.
Technical details
Self-hosting needs
- PostgreSQL
- Redis
- SMTP
Built with
- Python
- FastAPI
- Vue
- TypeScript
GitHub topics
- appointment-booking
- appointment-scheduling
- appointments-manager
- calendar
- scheduling
- thunderbird-pro
Reviewed by the OpenSourcePicks editors from the project's repository and documentation. Something out of date? Tell us.