Configure transactional emails for GudCal.
GudCal uses Resend for transactional emails including booking confirmations, cancellations, reschedule notifications, reminders, password resets, and magic link login.
Environment Variables
RESEND_API_KEY="re_your_resend_api_key"Setup
Create a Resend account
Sign up at resend.com/signup if you don't have an account.
Create an API key
In your Resend dashboard, go to API Keys and create a new key. Copy it into your .env.local file.
Configure sender domain (production)
For production, add and verify your domain in Resend so emails come from your own address (e.g. notifications@yourdomain.com).
Update the FROM_EMAIL in lib/emails.ts to match your verified domain.
Email Templates
GudCal includes six branded email templates built with React Email:
| Template | Trigger |
|---|---|
| Booking Confirmation | New booking created |
| Booking Cancellation | Booking cancelled (by host or guest) |
| Booking Rescheduled | Booking moved to a new time |
| Booking Reminder | 24 hours before the meeting (via cron) |
| Password Reset | User requests password reset |
| Magic Link | Passwordless login |
All templates use a shared layout with the GudCal emerald brand colors, logo, and footer.
Additional Guests
When a booking includes additional guests, they are automatically CC'd on all guest-facing emails (confirmation, cancellation, rescheduled, and reminder).
Cron Reminders
To enable 24-hour booking reminders, set up a cron job that calls:
POST /api/cron/reminders
Authorization: Bearer YOUR_CRON_SECRETSet CRON_SECRET in your environment variables. Services like Vercel Cron, cron-job.org, or a system crontab all work.
