SchedulingCAN I VIBECODE
Doodle?
BUILD FIRST
- One specific customer type and one primary use case
- A vertical slice that completes the main job without manual workarounds
- Visible limits, review steps, and a fallback when an external dependency fails
LEAVE FOR LATER
- Broad third-party integrations
- High-scale collaboration, syncing, and permissions
- Automation that can cause harm without human review
RESEARCH NOTES
What this tool actually does.
Doodle is a web-based scheduling tool built around availability polls. Core workflow: an organizer proposes candidate time slots (selectable on week/month views), shares a link, and invitees vote asynchronously on times they can attend; the organizer then compares everyone's availability to pick the best slot, replacing long email threads. Beyond polls, it offers 1:1 booking pages (a personal page auto-created at onboarding that reflects real-time availability), team booking pages with least-recently-assigned round-robin routing, sign-up sheets, and 'smart scheduling' that proposes mutual free slots or automatically falls back to a group poll when none exist. Users connect Google, Outlook, or Apple calendars so busy signals merge and double-bookings are avoided; meeting hours, buffer zones, and daily limits are enforced. Only the finalized event (e.g., closed poll winner, 1:1 bookings) s
RESEARCHED BUILD PROMPT
Give this to your coding agent.
Build 'PollSchedule', a working web app implementing the core Doodle-style workflow: an organizer creates an availability poll by picking candidate time slots from a week/month grid, shares a link, invitees vote anonymously (no account required) on times they can attend, and results aggregate so the organizer can close the poll and pick the best slot. Requirements: (1) poll creation with title, description, location, slot selection on week and month views, and optional close deadline; (2) shareable read-only voting link with per-voter token/cookie so a voter can change their vote but not vote twice; (3) results page showing per-slot counts, a participant-by-slot matrix, and CSV export; (4) closing the poll flags the winning slot and can push a placeholder event to Google Calendar via OAuth; (5) per-voter timezone display. Technical approach: React + Vite front end, Node/Express API, SQLite via better-sqlite3 or Prisma, date-fns with all times stored in UTC and converted to IANA timezones; use native date pickers rather than building custom calendars. Optional organizer auth via magic link token. Do not copy Doodle's brand name, logo, copy, or pixel-identical UI — this is an original implementation of the same concept. Out of scope: team round-robin routing, sign-up sheets, calendar busy-signal merging, recurring-slot auto-expansion across large ranges, native mobile apps, payments. Deliver a README covering setup (env vars, database migration, seed), architecture, and known limitations (duplicate-vote protection is cookie-based, no cross-calendar conflict detection, naive handling of recurring polls).