Timeful is a scheduling platform helps you find the best time for a group to meet. It is a free availability poll that is easy to use and integrates with your calendar.
Hosted version of the site: https://timeful.app
Built with Vue 2, MongoDB, Go, and TailwindCSS
- See when everybody's availability overlaps
- Easily specify date + time ranges to meet between
- Google calendar, Outlook, Apple calendar integration
- "Available" vs. "If needed" times
- Determine when a subset of people are available
- Schedule across different time zones
- Email notifications + reminders
- Duplicating polls
- Availability groups - stay up to date with people's real-time calendar availability
- Export availability as CSV
- Only show responses to event creator
Read these docs to design your own browser plugins to get + set availability on Timeful events programmatically!
- Prerequisites
- Node.js 16+ and npm
- Go 1.20+
- MongoDB running and accessible
- Environment
- Copy
.env.exampleto.envin/serverand fill values (Mongo URI, JWT secret, email/stripe keys as needed). - For the frontend, create
frontend/.env.localwith anyVUE_APP_*overrides you need (e.g., API base URL).
- Copy
- Install
- Frontend:
cd frontend && npm install - Backend:
cd server && go mod download
- Frontend:
- Run locally
- Backend:
cd server && go run main.go - Frontend:
cd frontend && npm run serve(defaults to http://localhost:8080)
- Backend:
- Build for production
- Frontend:
npm run build(outputs tofrontend/dist) - Serve built assets via your preferred web server; point API calls to the running Go server.
- Frontend:
- Updating
- Pull the latest changes, then re-run
npm install(frontend) andgo mod download(server) if dependencies changed. - Rebuild the frontend (
npm run build) and restart the Go server after updates.
- Pull the latest changes, then re-run
Tip: When deploying, ensure environment vars match your production Mongo/SMTP/Stripe config and that the frontend VUE_APP_API_URL points to your API host.
