An AI-powered email assistant that coordinates meeting times when CC'd on emails.
- CC
assistant@yourdomain.comon an email thread about scheduling - The assistant reads the thread, understands what's being scheduled
- Checks your calendar for availability
- Replies with available time slots
- Can create calendar events when times are confirmed
Nylas provides a unified API for email across Gmail, Outlook, etc.
- Sign up at nylas.com
- Create an application
- Connect your email account (or create a dedicated assistant email)
- Get your API key and Grant ID from the dashboard
- Set up a webhook pointing to
https://your-server.com/webhook- Subscribe to
message.createdevents
- Subscribe to
- Go to Google Cloud Console
- Create a new project
- Enable the Google Calendar API
- Create OAuth 2.0 credentials (Web application)
- Add
http://localhost:3000/oauth/callbackas redirect URI - Run the OAuth flow once to get a refresh token:
# Quick way to get refresh token - visit this URL:
https://accounts.google.com/o/oauth2/v2/auth?client_id=YOUR_CLIENT_ID&redirect_uri=http://localhost:3000/oauth/callback&response_type=code&scope=https://www.googleapis.com/auth/calendar&access_type=offline&prompt=consent
# Exchange the code for tokens:
curl -X POST https://oauth2.googleapis.com/token \
-d "code=AUTH_CODE&client_id=YOUR_CLIENT_ID&client_secret=YOUR_SECRET&redirect_uri=http://localhost:3000/oauth/callback&grant_type=authorization_code"Get your API key from console.anthropic.com
# Install dependencies
npm install
# Copy and fill in environment variables
cp .env.example .env
# Run in development
npm run dev
# Or build and run in production
npm run build
npm startUse ngrok or similar to expose your local server:
ngrok http 3000Then update your Nylas webhook URL to the ngrok URL.
Simply CC your assistant email on any scheduling-related email:
To: client@example.com
CC: assistant@yourdomain.com
Subject: Let's schedule a call
Hi! I'd love to set up a 30-minute call to discuss the project.
What times work for you next week?
The assistant will reply with your available slots.
| Variable | Description |
|---|---|
ASSISTANT_EMAIL |
The email address of your assistant |
USER_NAME |
Your name (used in replies) |
USER_TIMEZONE |
Your timezone (e.g., America/New_York) |
- Vercel: Add
vercel.json, works great for serverless - Railway: One-click deploy, handles everything
- Render: Free tier available
- AWS Lambda: Use with API Gateway for webhook
- Currently only proposes times, doesn't automatically book
- Single calendar support (easily extendable)
- No natural language time parsing (relies on explicit dates)