About
What this is
Team Calendars is a shared calendar for team time off and training. Each calendar has its own people, sub-calendars and settings, and everything sits behind a sign-in. It replaces the team's former Teamup calendar, and its first calendar holds everything imported from it.
What's here
- Year, Month, Week, Day and List views, with a Teamup-style year grid, a mini calendar and search.
- A sub-calendar per person, grouped by team group in the sidebar, plus shared ones such as public holidays.
- Roles in each calendar: calendar admins, group managers, users and read-only auditors. Site admins create calendars, and site auditors can read every calendar.
- Per-person permissions per sub-calendar, from "Modify" down to "No access".
- Two-factor sign-in, required for admins, managers and auditors, and optionally for everyone in a calendar.
- Read-only viewer links for people without an account, and private feeds to subscribe from Outlook and other calendar apps.
What this deliberately isn't
It isn't an HR, leave-approval or payroll system: there are no leave balances or approvals, and it isn't a record of entitlement. Your organisation's own systems are the reference. It also isn't public: apart from viewer links that an admin creates on purpose, you have to sign in to see anything.
Data privacy
- We store your name, email address, a hash of your password (never the password itself), your two-factor settings, your roles, and the events you enter.
- The app runs on Vercel and the data lives in a Neon Postgres database. Nothing is sold or shared for advertising.
- Email goes out through Resend only for sign-in links and codes, invitations an admin chose to send, and messages from the contact form.
- The only cookies are the ones that keep you signed in. View preferences, such as collapsed groups and months shown, stay in your browser.
- Vercel Web Analytics counts page views without cookies. Query strings and viewer link tokens are removed from addresses before anything is sent.
- Feed and viewer link addresses are stored only as hashes, so even we can't read them back. Create a new one if you lose it.
- To have your account or data removed, use the contact form.
Software
Main runtime components:
- Next.js and React: the web app
- Better Auth: sign-in, passwords and two-factor sign-in
- Drizzle ORM and node-postgres: the database
- FullCalendar: the month, week, day and list views
- ical-generator: calendar feeds
- Resend: sending email
- Zod: checking form input
- Base UI and react-qr-code: buttons, dialogs and the two-factor QR code
- Vercel Analytics: cookieless page counts
Every permission is checked on the server for every page, action and feed. Passwords are hashed by Better Auth, and sign-in links from email open a confirmation page first, so mail scanners can't use them up.
License
The source code is proprietary, and all rights are reserved. The events and other content you enter belong to you and your organisation.
Change control
Every update is listed, by date, in the changelog, once youin the changelog.apos;re signed in.