Tech Stack

DatabaseBackendFrontend
PostgresqlASP.NET Core MVCAlpine.js, HTMX, Tailwind

Libraries

TimePeriodLibrary — check availability, handle which events collide. Discussed in more depth here: Designing Calendar Events NodaTime — Replacement for DateTime (NOTE: TimePeriodLibrary expects DateTime objects and handles most of the math for us. Perhaps NodaTime is unnecessary?) iCal.net — Create and send calendar invitations MailKit — SMTP Stripe.net — Stripe integration Google (Google.Apis.Auth and Google.Apis.Calendar.v{x})