create_poll
Create a scheduling poll where participants vote on preferred time slots. Provide a title and time slot options in ISO 8601 format to generate a shareable URL for collecting votes.
Instructions
Create a Timergy scheduling poll (like Doodle) where participants vote on preferred time slots. Provide a title and at least 2-5 time slot options with ISO 8601 date-times (include timezone, e.g. 2026-03-20T18:00:00+02:00 or use UTC with Z suffix). Returns a shareable URL to send to participants and a passphrase for admin access. The passphrase is automatically remembered for finalize_poll. Workflow: create_poll -> share URL -> wait for votes -> get_results -> finalize_poll.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| title | Yes | Poll title (e.g. 'Dinner with Moritz') | |
| options | Yes | Time slot options (recommend 3-5) | |
| description | No | Optional poll description | |
| deadline | No | Optional voting deadline (ISO 8601) | |
| location | No | Optional event location | |
| creatorName | No | Name shown as poll creator (e.g. 'Claude for Max') |
Implementation Reference
- src/tools.ts:70-92 (handler)The handler function for the "create_poll" tool, which parses input using zod, calls the Timergy client, saves the passphrase, and returns a formatted result string.
case "create_poll": { const input = z.object({ title: z.string(), options: z.array(z.object({ start: z.string(), end: z.string() })).min(1), description: z.string().optional(), deadline: z.string().optional(), location: z.string().optional(), creatorName: z.string().optional(), }).parse(args); const result = await client.createPoll(input); passphraseMap.set(result.id, result.passphrase); return JSON.stringify({ pollId: result.id, title: result.title, url: result.url, passphrase: result.passphrase, options: result.options, expiresAt: result.expiresAt, note: "Share the URL with participants. The passphrase is saved for finalization.", }, null, 2); }