API: polls
Create, edit, answer, finalize and schedule polls, including suggested polls and invitations.
All paths are under https://api.quorumcal.com. Send Authorization: Bearer <token>, and optionally Quorum-Version: 2026-10-20. Body properties are listed as arguments with In = body.
polls answer
Section titled “polls answer”Answer a poll as yourself: PUT /v1/me/polls/{pollId}/my-response
One response per member; calling again replaces your answers.
- Needs:
polls:write(not for credentials limited to some orgs) - CLI:
quorum polls answer - MCP tool:
polls_answer - Returns:
200 PollResponseId
| Argument | In | Type | Required | Description |
|---|---|---|---|---|
pollId |
path | string (uuid) | yes | |
answers |
body | PollAnswerInput[] | yes | Options left out count as no |
polls attendees add
Section titled “polls attendees add”Add attendees to a suggested poll: POST /v1/me/polls/{pollId}/attendees
Adds people as required or optional. Existing options stay; propose more times to include the new people’s calendars in new options. The creator or a team admin, while the poll is open.
- Needs:
polls:write(not for credentials limited to some orgs) - CLI:
quorum polls attendees add - MCP tool:
polls_attendees_add - Returns:
200 PollSuggestions
| Argument | In | Type | Required | Description |
|---|---|---|---|---|
pollId |
path | string (uuid) | yes | |
attendees |
body | PollAttendeeInput[] | yes |
polls attendees remove
Section titled “polls attendees remove”Remove an attendee from a suggested poll: DELETE /v1/me/polls/{pollId}/attendees/{attendeeId}
Their answers, if they gave any, stay on the poll. The creator or a team admin, while the poll is open.
- Needs:
polls:write(not for credentials limited to some orgs) - CLI:
quorum polls attendees remove - MCP tool:
polls_attendees_remove - Returns:
200 PollSuggestions
| Argument | In | Type | Required | Description |
|---|---|---|---|---|
pollId |
path | string (uuid) | yes | |
attendeeId |
path | string (uuid) | yes |
polls attendees update
Section titled “polls attendees update”Make an attendee required or optional: PATCH /v1/me/polls/{pollId}/attendees/{attendeeId}
The “make optional” quick action (Q63). Required attendees decide whether an option counts as working (Q61). Changing it never changes answers. The creator or a team admin, while the poll is open.
- Needs:
polls:write(not for credentials limited to some orgs) - CLI:
quorum polls attendees update - MCP tool:
polls_attendees_update - Returns:
200 PollSuggestions
| Argument | In | Type | Required | Description |
|---|---|---|---|---|
pollId |
path | string (uuid) | yes | |
attendeeId |
path | string (uuid) | yes | |
required |
body | boolean | yes |
polls busy
Section titled “polls busy”Busy overlay for a poll’s grid: GET /v1/me/polls/{pollId}/busy
Team members only. For each member who answered, whether they are busy, free or unavailable for each option (decisions.md Q21) with no times, honoring their visibility (Q22): people who hide their calendars are left out. Options spread over more than 120 days get available: false. Rate limited per person. Never available on the public poll.
- Needs:
polls:read(not for credentials limited to some orgs) - CLI:
quorum polls busy - MCP tool:
polls_busy - Returns:
200 PollBusy
| Argument | In | Type | Required | Description |
|---|---|---|---|---|
pollId |
path | string (uuid) | yes |
polls create
Section titled “polls create”Create a poll: POST /v1/me/polls
Share the poll’s public link at quorumcal.com/{owner address}/poll/{publicId} (or quorumcal.com/{org}/poll/{publicId} with publishAtRoot). Anyone with it can respond without an account.
- Needs:
polls:write(not for credentials limited to some orgs) - CLI:
quorum polls create - MCP tool:
polls_create - Returns:
201 Poll
| Argument | In | Type | Required | Description |
|---|---|---|---|---|
title |
body | string | yes | |
description |
body | string | ||
durationMinutes |
body | integer | yes | |
timezone |
body | string | yes | |
options |
body | string (date-time)[] | yes | Candidate start times, in the future, up to 50 |
deadline |
body | string (date-time) | ||
meet |
body | boolean | Defaults to the org’s setting | |
publishAtRoot |
body | boolean | Team polls of a team with root publishing: public at quorumcal.com/{org}/poll/{publicId} instead of under the team. Defaults to false |
polls delete
Section titled “polls delete”Delete a poll and its responses: DELETE /v1/me/polls/{pollId}
Deleting a finalized poll doesn’t remove the calendar event.
- Needs:
polls:write(not for credentials limited to some orgs) - CLI:
quorum polls delete - MCP tool:
polls_delete - Returns: no body
| Argument | In | Type | Required | Description |
|---|---|---|---|---|
pollId |
path | string (uuid) | yes |
polls finalize
Section titled “polls finalize”Pick the final time and invite everyone who responded: POST /v1/me/polls/{pollId}/finalize
Creates a Google Calendar event on the creator’s booking calendar with every respondent as an attendee, and closes the poll. Finalizing the same option again returns the poll unchanged without a second event.
- Needs:
polls:write(not for credentials limited to some orgs) - CLI:
quorum polls finalize - MCP tool:
polls_finalize - Returns:
200 Poll
| Argument | In | Type | Required | Description |
|---|---|---|---|---|
pollId |
path | string (uuid) | yes | |
optionId |
body | string (uuid) | yes |
polls get
Section titled “polls get”Get a poll with every response: GET /v1/me/polls/{pollId}
Members see respondents’ email addresses; the public view never does.
- Needs:
polls:read(not for credentials limited to some orgs) - CLI:
quorum polls get - MCP tool:
polls_get - Returns:
200 Poll
| Argument | In | Type | Required | Description |
|---|---|---|---|---|
pollId |
path | string (uuid) | yes |
polls invitations create
Section titled “polls invitations create”Invite people to answer a poll by email: POST /v1/me/polls/{pollId}/invitations
Inviting needs no availability grant (Q105). Each address gets the poll’s link; the first email an address ever gets introduces Quorum, and every email carries “Don’t email me about Quorum” and “Forget me”. An address that opted out is skipped (listed under suppressed). Addresses already invited are skipped. New accounts can send a few a day (Q113).
- Needs:
polls:write(not for credentials limited to some orgs) - CLI:
quorum polls invitations create - MCP tool:
polls_invitations_create - Returns:
201 PollInvitations
| Argument | In | Type | Required | Description |
|---|---|---|---|---|
pollId |
path | string (uuid) | yes | |
emails |
body | string (email)[] | yes | Up to 20 addresses |
note |
body | string |
polls invitations list
Section titled “polls invitations list”List who was invited to a poll: GET /v1/me/polls/{pollId}/invitations
Team members only.
- Needs:
polls:read(not for credentials limited to some orgs) - CLI:
quorum polls invitations list - MCP tool:
polls_invitations_list - Returns:
200 object
| Argument | In | Type | Required | Description |
|---|---|---|---|---|
pollId |
path | string (uuid) | yes |
polls prefill
Section titled “polls prefill”Suggested answers from your connected calendars: GET /v1/me/polls/{pollId}/prefill
Free options are suggested yes, busy ones no, never maybe (Q49). Reads your own conflict-checking calendars, hidden ones included. Nothing is saved: answer with the my-response endpoint after reviewing.
- Needs:
polls:read(not for credentials limited to some orgs) - CLI:
quorum polls prefill - MCP tool:
polls_prefill - Returns:
200 PollPrefill
| Argument | In | Type | Required | Description |
|---|---|---|---|---|
pollId |
path | string (uuid) | yes |
polls schedule
Section titled “polls schedule”Schedule now: book the chosen option and close the poll: POST /v1/me/polls/{pollId}/schedule
Books the option the owner picked through the same path as finalize: one Google Calendar event on the creator’s booking calendar with every attendee and respondent invited, and the poll closed. Google’s invitation is the only booking email (Q122); Quorum emails nobody. The ranking is re-read fresh first: if a required attendee is busy, outside hours or unconfirmed at that time, the request is refused with conflicts unless acceptConflicts is true. The creator or a team admin. Booking the same option again returns the poll unchanged.
- Needs:
polls:write(not for credentials limited to some orgs) - CLI:
quorum polls schedule - MCP tool:
polls_schedule - Returns:
200 Poll
| Argument | In | Type | Required | Description |
|---|---|---|---|---|
pollId |
path | string (uuid) | yes | |
optionId |
body | string (uuid) | yes | |
acceptConflicts |
body | boolean |
polls suggest
Section titled “polls suggest”Create a poll whose times Quorum proposes: POST /v1/me/polls/suggest
Pick attendees (required or optional), a length and a window. Quorum proposes up to maxOptions non-overlapping times where the people it may see are free (Q105: a grant for this owner, and only calendars they show), inside their working hours and with their saved overrides applied (Q52). Attendees it can’t see are counted as unknown, not busy. Fails with no_times when nobody it can read is free anywhere in the window.
- Needs:
polls:write(not for credentials limited to some orgs) - CLI:
quorum polls suggest - MCP tool:
polls_suggest - Returns:
201 Poll
| Argument | In | Type | Required | Description |
|---|---|---|---|---|
title |
body | string | yes | |
description |
body | string | ||
durationMinutes |
body | integer | yes | |
timezone |
body | string | yes | |
window |
body | SuggestionWindow | yes | |
intervalMinutes |
body | integer | How often a time may start, in the poll’s time zone. Defaults to 30 | |
attendees |
body | PollAttendeeInput[] | yes | |
maxOptions |
body | integer | At most this many proposed times. Defaults to 20 | |
deadline |
body | string (date-time) | ||
autoFinalize |
body | boolean | Schedule the Best option by itself once every required attendee has answered, or the deadline passes, if it is unique (Q75). Needs a required attendee or a deadline | |
meet |
body | boolean | ||
publishAtRoot |
body | boolean |
polls suggest-people
Section titled “polls suggest-people”People who can be picked as attendees of a suggested poll: GET /v1/me/polls/suggest/people
Org and team members, plus anyone who shared their availability for this owner (Q105). Names only, no addresses. canSeeCalendar says whether Quorum may read them; anyone else can still be an attendee and is counted as unknown. Team members only.
- Needs:
polls:read(not for credentials limited to some orgs) - CLI:
quorum polls suggest-people - MCP tool:
polls_suggest_people - Returns:
200 object
polls suggestions get
Section titled “polls suggestions get”Every option ranked, with who can make it: GET /v1/me/polls/{pollId}/suggestions
Combines each attendee’s calendar (only if they shared availability for this owner and show a calendar, Q105) with the explicit answers on the poll; an explicit answer wins. Options are ordered required people first (an option missing a required person ranks below every option where all required people are available), then most people available, then maybes, then the earlier date (Q61). best marks the top option when no required person is missing. When no option has every required person requiredAlign is false and hints lists quick actions to offer; Quorum applies none. Each cell says busy, free, outside_hours or unknown for that person and option, never a time or title. Team members only; rate limited.
- Needs:
polls:read(not for credentials limited to some orgs) - CLI:
quorum polls suggestions get - MCP tool:
polls_suggestions_get - Returns:
200 PollSuggestions
| Argument | In | Type | Required | Description |
|---|---|---|---|---|
pollId |
path | string (uuid) | yes |
polls suggestions more
Section titled “polls suggestions more”Propose more times, optionally in a wider window: POST /v1/me/polls/{pollId}/suggestions/more
The “widen window” quick action (Q63). Adds new non-overlapping options from the calendars Quorum may see; existing options and their answers stay. to and from move the window (at most 62 days in all); without them the window extends a week at the end. Up to 50 options in total. The creator or a team admin, while the poll is open.
- Needs:
polls:write(not for credentials limited to some orgs) - CLI:
quorum polls suggestions more - MCP tool:
polls_suggestions_more - Returns:
200 PollSuggestions
| Argument | In | Type | Required | Description |
|---|---|---|---|---|
pollId |
path | string (uuid) | yes | |
from |
body | string (date-time) | ||
to |
body | string (date-time) |
polls suggestions update
Section titled “polls suggestions update”Turn auto-finalize on or off: PATCH /v1/me/polls/{pollId}/suggestions
Auto-finalize (Q75) schedules the Best option by itself once every required attendee has answered, or the deadline has passed, if exactly one Best exists; otherwise the owner is emailed once. It needs a required attendee or a deadline. The creator or a team admin.
- Needs:
polls:write(not for credentials limited to some orgs) - CLI:
quorum polls suggestions update - MCP tool:
polls_suggestions_update - Returns:
200 PollSuggestions
| Argument | In | Type | Required | Description |
|---|---|---|---|---|
pollId |
path | string (uuid) | yes | |
autoFinalize |
body | boolean | yes |
polls update
Section titled “polls update”Edit a poll: PATCH /v1/me/polls/{pollId}
The creator or a team admin can edit an open poll. Times, length and time zone can’t change once anyone has responded.
- Needs:
polls:write(not for credentials limited to some orgs) - CLI:
quorum polls update - MCP tool:
polls_update - Returns:
200 Poll
| Argument | In | Type | Required | Description |
|---|---|---|---|---|
pollId |
path | string (uuid) | yes | |
title |
body | string | ||
description |
body | string | ||
durationMinutes |
body | integer | ||
timezone |
body | string | ||
options |
body | string (date-time)[] | Replaces the options. Only allowed while nobody has responded | |
deadline |
body | string (date-time) | ||
meet |
body | boolean | ||
publishAtRoot |
body | boolean |
team polls answer
Section titled “team polls answer”Answer a poll as yourself: PUT /v1/orgs/{handle}/teams/{teamPath}/polls/{pollId}/my-response
One response per member; calling again replaces your answers.
- Needs:
polls:write - CLI:
quorum team polls answer - MCP tool:
team_polls_answer - Returns:
200 PollResponseId
| Argument | In | Type | Required | Description |
|---|---|---|---|---|
handle |
path | string | yes | |
teamPath |
path | string | yes | The team’s slug or id |
pollId |
path | string (uuid) | yes | |
answers |
body | PollAnswerInput[] | yes | Options left out count as no |
team polls attendees add
Section titled “team polls attendees add”Add attendees to a suggested poll: POST /v1/orgs/{handle}/teams/{teamPath}/polls/{pollId}/attendees
Adds people as required or optional. Existing options stay; propose more times to include the new people’s calendars in new options. The creator or a team admin, while the poll is open.
- Needs:
polls:write - CLI:
quorum team polls attendees add - MCP tool:
team_polls_attendees_add - Returns:
200 PollSuggestions
| Argument | In | Type | Required | Description |
|---|---|---|---|---|
handle |
path | string | yes | |
teamPath |
path | string | yes | The team’s slug or id |
pollId |
path | string (uuid) | yes | |
attendees |
body | PollAttendeeInput[] | yes |
team polls attendees remove
Section titled “team polls attendees remove”Remove an attendee from a suggested poll: DELETE /v1/orgs/{handle}/teams/{teamPath}/polls/{pollId}/attendees/{attendeeId}
Their answers, if they gave any, stay on the poll. The creator or a team admin, while the poll is open.
- Needs:
polls:write - CLI:
quorum team polls attendees remove - MCP tool:
team_polls_attendees_remove - Returns:
200 PollSuggestions
| Argument | In | Type | Required | Description |
|---|---|---|---|---|
handle |
path | string | yes | |
teamPath |
path | string | yes | The team’s slug or id |
pollId |
path | string (uuid) | yes | |
attendeeId |
path | string (uuid) | yes |
team polls attendees update
Section titled “team polls attendees update”Make an attendee required or optional: PATCH /v1/orgs/{handle}/teams/{teamPath}/polls/{pollId}/attendees/{attendeeId}
The “make optional” quick action (Q63). Required attendees decide whether an option counts as working (Q61). Changing it never changes answers. The creator or a team admin, while the poll is open.
- Needs:
polls:write - CLI:
quorum team polls attendees update - MCP tool:
team_polls_attendees_update - Returns:
200 PollSuggestions
| Argument | In | Type | Required | Description |
|---|---|---|---|---|
handle |
path | string | yes | |
teamPath |
path | string | yes | The team’s slug or id |
pollId |
path | string (uuid) | yes | |
attendeeId |
path | string (uuid) | yes | |
required |
body | boolean | yes |
team polls busy
Section titled “team polls busy”Busy overlay for a poll’s grid: GET /v1/orgs/{handle}/teams/{teamPath}/polls/{pollId}/busy
Team members only. For each member who answered, whether they are busy, free or unavailable for each option (decisions.md Q21) with no times, honoring their visibility (Q22): people who hide their calendars are left out. Options spread over more than 120 days get available: false. Rate limited per person. Never available on the public poll.
- Needs:
polls:read - CLI:
quorum team polls busy - MCP tool:
team_polls_busy - Returns:
200 PollBusy
| Argument | In | Type | Required | Description |
|---|---|---|---|---|
handle |
path | string | yes | |
teamPath |
path | string | yes | The team’s slug or id |
pollId |
path | string (uuid) | yes |
team polls create
Section titled “team polls create”Create a poll: POST /v1/orgs/{handle}/teams/{teamPath}/polls
Share the poll’s public link at quorumcal.com/{owner address}/poll/{publicId} (or quorumcal.com/{org}/poll/{publicId} with publishAtRoot). Anyone with it can respond without an account.
- Needs:
polls:write - CLI:
quorum team polls create - MCP tool:
team_polls_create - Returns:
201 Poll
| Argument | In | Type | Required | Description |
|---|---|---|---|---|
handle |
path | string | yes | |
teamPath |
path | string | yes | The team’s slug or id |
title |
body | string | yes | |
description |
body | string | ||
durationMinutes |
body | integer | yes | |
timezone |
body | string | yes | |
options |
body | string (date-time)[] | yes | Candidate start times, in the future, up to 50 |
deadline |
body | string (date-time) | ||
meet |
body | boolean | Defaults to the org’s setting | |
publishAtRoot |
body | boolean | Team polls of a team with root publishing: public at quorumcal.com/{org}/poll/{publicId} instead of under the team. Defaults to false |
team polls delete
Section titled “team polls delete”Delete a poll and its responses: DELETE /v1/orgs/{handle}/teams/{teamPath}/polls/{pollId}
Deleting a finalized poll doesn’t remove the calendar event.
- Needs:
polls:write - CLI:
quorum team polls delete - MCP tool:
team_polls_delete - Returns: no body
| Argument | In | Type | Required | Description |
|---|---|---|---|---|
handle |
path | string | yes | |
teamPath |
path | string | yes | The team’s slug or id |
pollId |
path | string (uuid) | yes |
team polls finalize
Section titled “team polls finalize”Pick the final time and invite everyone who responded: POST /v1/orgs/{handle}/teams/{teamPath}/polls/{pollId}/finalize
Creates a Google Calendar event on the creator’s booking calendar with every respondent as an attendee, and closes the poll. Finalizing the same option again returns the poll unchanged without a second event.
- Needs:
polls:write - CLI:
quorum team polls finalize - MCP tool:
team_polls_finalize - Returns:
200 Poll
| Argument | In | Type | Required | Description |
|---|---|---|---|---|
handle |
path | string | yes | |
teamPath |
path | string | yes | The team’s slug or id |
pollId |
path | string (uuid) | yes | |
optionId |
body | string (uuid) | yes |
team polls get
Section titled “team polls get”Get a poll with every response: GET /v1/orgs/{handle}/teams/{teamPath}/polls/{pollId}
Members see respondents’ email addresses; the public view never does.
- Needs:
polls:read - CLI:
quorum team polls get - MCP tool:
team_polls_get - Returns:
200 Poll
| Argument | In | Type | Required | Description |
|---|---|---|---|---|
handle |
path | string | yes | |
teamPath |
path | string | yes | The team’s slug or id |
pollId |
path | string (uuid) | yes |
team polls invitations create
Section titled “team polls invitations create”Invite people to answer a poll by email: POST /v1/orgs/{handle}/teams/{teamPath}/polls/{pollId}/invitations
Inviting needs no availability grant (Q105). Each address gets the poll’s link; the first email an address ever gets introduces Quorum, and every email carries “Don’t email me about Quorum” and “Forget me”. An address that opted out is skipped (listed under suppressed). Addresses already invited are skipped. New accounts can send a few a day (Q113).
- Needs:
polls:write - CLI:
quorum team polls invitations create - MCP tool:
team_polls_invitations_create - Returns:
201 PollInvitations
| Argument | In | Type | Required | Description |
|---|---|---|---|---|
handle |
path | string | yes | |
teamPath |
path | string | yes | The team’s slug or id |
pollId |
path | string (uuid) | yes | |
emails |
body | string (email)[] | yes | Up to 20 addresses |
note |
body | string |
team polls invitations list
Section titled “team polls invitations list”List who was invited to a poll: GET /v1/orgs/{handle}/teams/{teamPath}/polls/{pollId}/invitations
Team members only.
- Needs:
polls:read - CLI:
quorum team polls invitations list - MCP tool:
team_polls_invitations_list - Returns:
200 object
| Argument | In | Type | Required | Description |
|---|---|---|---|---|
handle |
path | string | yes | |
teamPath |
path | string | yes | The team’s slug or id |
pollId |
path | string (uuid) | yes |
team polls prefill
Section titled “team polls prefill”Suggested answers from your connected calendars: GET /v1/orgs/{handle}/teams/{teamPath}/polls/{pollId}/prefill
Free options are suggested yes, busy ones no, never maybe (Q49). Reads your own conflict-checking calendars, hidden ones included. Nothing is saved: answer with the my-response endpoint after reviewing.
- Needs:
polls:read - CLI:
quorum team polls prefill - MCP tool:
team_polls_prefill - Returns:
200 PollPrefill
| Argument | In | Type | Required | Description |
|---|---|---|---|---|
handle |
path | string | yes | |
teamPath |
path | string | yes | The team’s slug or id |
pollId |
path | string (uuid) | yes |
team polls schedule
Section titled “team polls schedule”Schedule now: book the chosen option and close the poll: POST /v1/orgs/{handle}/teams/{teamPath}/polls/{pollId}/schedule
Books the option the owner picked through the same path as finalize: one Google Calendar event on the creator’s booking calendar with every attendee and respondent invited, and the poll closed. Google’s invitation is the only booking email (Q122); Quorum emails nobody. The ranking is re-read fresh first: if a required attendee is busy, outside hours or unconfirmed at that time, the request is refused with conflicts unless acceptConflicts is true. The creator or a team admin. Booking the same option again returns the poll unchanged.
- Needs:
polls:write - CLI:
quorum team polls schedule - MCP tool:
team_polls_schedule - Returns:
200 Poll
| Argument | In | Type | Required | Description |
|---|---|---|---|---|
handle |
path | string | yes | |
teamPath |
path | string | yes | The team’s slug or id |
pollId |
path | string (uuid) | yes | |
optionId |
body | string (uuid) | yes | |
acceptConflicts |
body | boolean |
team polls suggest
Section titled “team polls suggest”Create a poll whose times Quorum proposes: POST /v1/orgs/{handle}/teams/{teamPath}/polls/suggest
Pick attendees (required or optional), a length and a window. Quorum proposes up to maxOptions non-overlapping times where the people it may see are free (Q105: a grant for this owner, and only calendars they show), inside their working hours and with their saved overrides applied (Q52). Attendees it can’t see are counted as unknown, not busy. Fails with no_times when nobody it can read is free anywhere in the window.
- Needs:
polls:write - CLI:
quorum team polls suggest - MCP tool:
team_polls_suggest - Returns:
201 Poll
| Argument | In | Type | Required | Description |
|---|---|---|---|---|
handle |
path | string | yes | |
teamPath |
path | string | yes | The team’s slug or id |
title |
body | string | yes | |
description |
body | string | ||
durationMinutes |
body | integer | yes | |
timezone |
body | string | yes | |
window |
body | SuggestionWindow | yes | |
intervalMinutes |
body | integer | How often a time may start, in the poll’s time zone. Defaults to 30 | |
attendees |
body | PollAttendeeInput[] | yes | |
maxOptions |
body | integer | At most this many proposed times. Defaults to 20 | |
deadline |
body | string (date-time) | ||
autoFinalize |
body | boolean | Schedule the Best option by itself once every required attendee has answered, or the deadline passes, if it is unique (Q75). Needs a required attendee or a deadline | |
meet |
body | boolean | ||
publishAtRoot |
body | boolean |
team polls suggest-people
Section titled “team polls suggest-people”People who can be picked as attendees of a suggested poll: GET /v1/orgs/{handle}/teams/{teamPath}/polls/suggest/people
Org and team members, plus anyone who shared their availability for this owner (Q105). Names only, no addresses. canSeeCalendar says whether Quorum may read them; anyone else can still be an attendee and is counted as unknown. Team members only.
- Needs:
polls:read - CLI:
quorum team polls suggest-people - MCP tool:
team_polls_suggest_people - Returns:
200 object
| Argument | In | Type | Required | Description |
|---|---|---|---|---|
handle |
path | string | yes | |
teamPath |
path | string | yes | The team’s slug or id |
team polls suggestions get
Section titled “team polls suggestions get”Every option ranked, with who can make it: GET /v1/orgs/{handle}/teams/{teamPath}/polls/{pollId}/suggestions
Combines each attendee’s calendar (only if they shared availability for this owner and show a calendar, Q105) with the explicit answers on the poll; an explicit answer wins. Options are ordered required people first (an option missing a required person ranks below every option where all required people are available), then most people available, then maybes, then the earlier date (Q61). best marks the top option when no required person is missing. When no option has every required person requiredAlign is false and hints lists quick actions to offer; Quorum applies none. Each cell says busy, free, outside_hours or unknown for that person and option, never a time or title. Team members only; rate limited.
- Needs:
polls:read - CLI:
quorum team polls suggestions get - MCP tool:
team_polls_suggestions_get - Returns:
200 PollSuggestions
| Argument | In | Type | Required | Description |
|---|---|---|---|---|
handle |
path | string | yes | |
teamPath |
path | string | yes | The team’s slug or id |
pollId |
path | string (uuid) | yes |
team polls suggestions more
Section titled “team polls suggestions more”Propose more times, optionally in a wider window: POST /v1/orgs/{handle}/teams/{teamPath}/polls/{pollId}/suggestions/more
The “widen window” quick action (Q63). Adds new non-overlapping options from the calendars Quorum may see; existing options and their answers stay. to and from move the window (at most 62 days in all); without them the window extends a week at the end. Up to 50 options in total. The creator or a team admin, while the poll is open.
- Needs:
polls:write - CLI:
quorum team polls suggestions more - MCP tool:
team_polls_suggestions_more - Returns:
200 PollSuggestions
| Argument | In | Type | Required | Description |
|---|---|---|---|---|
handle |
path | string | yes | |
teamPath |
path | string | yes | The team’s slug or id |
pollId |
path | string (uuid) | yes | |
from |
body | string (date-time) | ||
to |
body | string (date-time) |
team polls suggestions update
Section titled “team polls suggestions update”Turn auto-finalize on or off: PATCH /v1/orgs/{handle}/teams/{teamPath}/polls/{pollId}/suggestions
Auto-finalize (Q75) schedules the Best option by itself once every required attendee has answered, or the deadline has passed, if exactly one Best exists; otherwise the owner is emailed once. It needs a required attendee or a deadline. The creator or a team admin.
- Needs:
polls:write - CLI:
quorum team polls suggestions update - MCP tool:
team_polls_suggestions_update - Returns:
200 PollSuggestions
| Argument | In | Type | Required | Description |
|---|---|---|---|---|
handle |
path | string | yes | |
teamPath |
path | string | yes | The team’s slug or id |
pollId |
path | string (uuid) | yes | |
autoFinalize |
body | boolean | yes |
team polls update
Section titled “team polls update”Edit a poll: PATCH /v1/orgs/{handle}/teams/{teamPath}/polls/{pollId}
The creator or a team admin can edit an open poll. Times, length and time zone can’t change once anyone has responded.
- Needs:
polls:write - CLI:
quorum team polls update - MCP tool:
team_polls_update - Returns:
200 Poll
| Argument | In | Type | Required | Description |
|---|---|---|---|---|
handle |
path | string | yes | |
teamPath |
path | string | yes | The team’s slug or id |
pollId |
path | string (uuid) | yes | |
title |
body | string | ||
description |
body | string | ||
durationMinutes |
body | integer | ||
timezone |
body | string | ||
options |
body | string (date-time)[] | Replaces the options. Only allowed while nobody has responded | |
deadline |
body | string (date-time) | ||
meet |
body | boolean | ||
publishAtRoot |
body | boolean |