Doodle

doodle.comcontributed by Samuele Ongaro

YES

Replaceable in one session with an AI coding agent.

Finds a time a group can agree on: the organiser proposes options, everyone ticks what suits them, and the winning slot becomes a meeting.

Promptfree, for everyone, and the only version there is
Build me a group scheduling tool that replaces Doodle: propose times, everyone ticks what suits them without an account, and the winner becomes a meeting.

STACK
- Node 20+ with Fastify, server-rendered HTML with progressive enhancement
- SQLite through better-sqlite3, WAL mode
- Caddy in front

THE DATA MODEL
- polls: id, public_token, admin_token, title, location, description, organiser_name, organiser_email, kind, timezone, deadline_at, hide_participants, allow_maybe, allow_comments, max_per_slot, finalised_option_id, created_at
- options: id, poll_id, starts_at_utc, ends_at_utc, position — every instant stored in UTC, with the poll's own zone kept beside it for display
- participants: id, poll_id, name, email, edit_token, created_at, updated_at
- responses: participant_id, option_id, answer — yes, no, maybe
- comments: id, poll_id, participant_name, body, created_at
- reminders: id, poll_id, participant_id, kind, sent_at
- calendar_links: id, poll_id, provider, ics_url, last_fetched_at, busy_json

NO ACCOUNT, WHICH IS THE ENTIRE REASON IT SPREAD
- A poll is created by a form and returns two links: a public one to send round, and an admin one kept by the organiser. Nothing else is needed
- A participant types a name, ticks boxes, saves. They get an edit link by email if they gave one, and their answer stays editable in that browser regardless
- No sign-up wall at any point, including after finalising. The moment a participant is asked to register, the tool has lost the only thing it had

TIME, WHICH IS WHERE THIS GOES WRONG
- Every option stored as a UTC instant. Never a local string
- Each participant sees the times in their own browser's zone, with the organiser's zone shown beside it and a switch to view in that
- Daylight saving handled by storing instants, and the test suite includes a poll spanning a transition in both directions
- Whole-day options are a different kind and are stored as dates, not as midnight instants — the classic bug in this product category

CALENDARS
- The organiser can attach a read-only ICS feed from any calendar; options they are busy for are marked, and optionally hidden from the poll
- Fetch politely with caching headers, at most every fifteen minutes, and never store the events' details — only the busy intervals
- Every participant can attach their own feed too, entirely optional, with the same rule
- The finalised meeting is offered as an ICS download and as add-to-calendar links built by hand, no third party

RUNNING THE POLL
- A grid: participants down the side, options across the top, with a running count and the leading option marked
- Yes, no and optionally maybe; the count says how many yes and how many yes-or-maybe, separately, because they are different meetings
- Hidden mode: a participant sees only their own row until they have answered, then everything — this stops the herd effect
- A cap per slot for booking-style polls, with a full slot disabled
- Comments, if the poll allows them

CHASING PEOPLE
- The organiser sees who has not answered and can send one reminder per person per day, never more
- An automatic reminder before the deadline, if the organiser turned it on
- Every email has a one-click way out and none of them requires an account

FINISHING
- The organiser picks the winning option; everyone who answered is emailed the result with the ICS attached
- The poll page then shows the decision at the top and stays reachable forever at the same link
- Export the grid as CSV

OPERATIONS
- .env: DATABASE_PATH, BASE_URL, SMTP_URL, HASH_SALT
- Migrations on boot, each once
- Tokens are long random strings, compared in constant time, and never guessable by counting
- Nightly backup off the machine, restore script
- Health endpoint

WHAT MATTERS MOST
Time zones and no-account participation. Write the tests for the daylight-saving cases before the interface exists, and make sure a stranger with the link can answer in three clicks on a phone. Everything else is a table.

Give me the repository, migrations, .env.example, a seed poll with eight participants across four zones, and a README with deploy steps behind Caddy.

What you lose

  • A poll link anyone can answer without an account, which is the entire reason it spread
  • Calendar connections that grey out options the organiser cannot make
  • Automatic reminders to the people who have not voted yet
  • Booking pages and one-to-one links alongside the group poll
  • An ad-free experience for participants, which is what the paid tier really sells

If you would rather not build

  • When2meet — free, grid-based availability, ad supported

What it costs

as published on their pricing page

PlanBilled monthlyBilled yearlyLast read
—$15/mo——

Their pricing page is where these came from. Seeing a different price? Tell us.

The escape hatch

open source · no votes, no paid placement

Rallly

$0

Group scheduling polls with no account for participants, self-hostable.

lukevella/ralllyfree · open source

Framadate

$0

Date and poll tool from Framasoft, simple to run on ordinary PHP hosting.

framasoft/framadatefree · open source

Why this verdict

our own opinion · changed only by a person

82/100

Verdict yes at 82: this is a table of ticks with signed links, and one session is genuinely enough. The thing Doodle has that a build cannot copy is that everyone already knows what a Doodle link is.

History

tracked since 9 Aug 2026 · nothing is ever overwritten

Interest · last 30 dayspeak 3/day
views012330 Aug4 Sept9 Sept14 Sept19 Sept24 Sept28 Sept
— views— prompt copies none yet— votes none yet

Questions about Doodle

answered from the record above

Is Doodle free?

No — the plan we track is $15 a month. Pro at about $15 per user per month billed monthly, less annually; the group poll is free with advertising.

Can you replace Doodle by building your own?

YES. Replaceable in one session with an AI coding agent. Replacement score 82 out of 100, build time one session. Read what you lose before you decide.

How much does Doodle cost?

$15 a month on Pro — $180 a year. Recorded 9 Aug 2026.

What do you lose by replacing Doodle?

A poll link anyone can answer without an account, which is the entire reason it spread; Calendar connections that grey out options the organiser cannot make; Automatic reminders to the people who have not voted yet; Booking pages and one-to-one links alongside the group poll; An ad-free experience for participants, which is what the paid tier really sells. If any of those carry weight for you, keep paying.

Is there an open-source alternative to Doodle?

Yes: Rallly, Framadate. The prompt on this page is for when you want it your way instead.

Related entries

same category first, most replaced first

All 14 in Scheduling

Not sending yet

Every week, something stops being worth paying for.

New verdicts, prices that moved, entries added. One email a week. Unsubscribe in one click. Nothing is being sent yet — your address is kept here, and the first issue is the first thing it is used for.

free forever · no tracking pixel · stored here, never passed to anyone

Esc