Skip to content

API: series

Recurring poll series: members, weeks, new-time polls, breaks and your memberships.

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.

The org’s breaks: GET /v1/orgs/{handle}/breaks

Date ranges every series of the org’s teams skips unless it opts out (Q63). Org members.

  • Needs: any signed-in credential
  • CLI: quorum orgs breaks list
  • MCP tool: orgs_breaks_list
  • Returns: 200 object
Argument In Type Required Description
handle path string yes

Answer from my calendar automatically for this series: PUT /v1/series/{seriesId}/membership/auto-answer

Turning it on shares your availability with this series and nothing else (a grant, Q105, made by this act) and lets Quorum answer each poll from your calendar, so you only hear from it when no option works for you (Q64). Turning it off takes the grant back. An outsider added by address becomes a user here (Q69). Only your own switch.

  • Needs: availability:write (not for credentials limited to some orgs)
  • CLI: quorum series auto-answer set
  • MCP tool: series_auto_answer_set
  • Returns: 200 SeriesMembership
Argument In Type Required Description
seriesId path string (uuid) yes
enabled body boolean yes

Add a break: POST /v1/me/breaks

A team’s break applies to the team’s series; a person’s own to their series. Org-wide breaks are added at the org (Q63). Team admins; a person for themselves.

  • Needs: polls:write (not for credentials limited to some orgs)
  • CLI: quorum series breaks create
  • MCP tool: series_breaks_create
  • Returns: 201 SeriesBreak
Argument In Type Required Description
label body string yes
startsOn body string yes
endsOn body string yes

Remove a break: DELETE /v1/me/breaks/{breakId}

Only the team’s or the person’s own; an org-wide break is removed at the org.

  • Needs: polls:write (not for credentials limited to some orgs)
  • CLI: quorum series breaks delete
  • MCP tool: series_breaks_delete
  • Returns: no body
Argument In Type Required Description
breakId path string (uuid) yes

Breaks that series skip: GET /v1/me/breaks

Date ranges (inclusive) every series here skips unless it opts out (Q63). A team sees its org’s breaks and its own; a person their own.

  • Needs: polls:read (not for credentials limited to some orgs)
  • CLI: quorum series breaks list
  • MCP tool: series_breaks_list
  • Returns: 200 object

Start a recurring poll series: POST /v1/me/series

A series is owned by you or this team and books into the host’s calendar. Re-poll makes a suggested poll for each period (opening and closing as timing says), prefilled from calendars, and books the best option at the deadline (Q58, Q61). Standing time keeps one recurring event and watches it for declines (Q60, Q67). Members are required or optional; people with an account are read only where they shared availability, and an outsider by address is asked by email (Q69). Everything automatic can be set to auto, ask or off (Q66).

  • Needs: polls:write (not for credentials limited to some orgs)
  • CLI: quorum series create
  • MCP tool: series_create
  • Returns: 201 Series
Argument In Type Required Description
title body string yes
description body string
durationMinutes body integer yes
timezone body string yes
meet body boolean
intervalWeeks body integer A period starts every this many weeks. Defaults to 1 (weekly)
startsOn body string The local date the first period starts on. A re-poll series defaults to the next Monday; a standing-time series to its first meeting
windowDays body integer How many days a period offers times on, at most the interval. Defaults to 7
weekdays body integer[] Days a time may start on, 0 is Sunday. Defaults to Monday to Friday
windowStart body string Earliest start, local. Defaults to 09:00
windowEnd body string Latest end, local. Defaults to 17:00
intervalMinutes body integer How often a time may start. Defaults to 30
timing body “fixed” or “rolling” Fixed (Q66): the poll opens and closes at set times before each period. Rolling: it opens when the previous meeting ends and closes 48 hours before the earliest option
openDaysBefore body integer Fixed timing: days before the period the poll opens. Defaults to 3 (Friday for a Monday period)
openTime body string HH:MM, local
closeDaysBefore body integer Fixed timing: days before the period the poll closes. Defaults to 2 (Saturday noon for a Monday period; one day leaves under the 24 hours a second round needs before a 09:00 start)
closeTime body string Defaults to 12:00
respectBreaks body boolean Skip the org’s, team’s and personal breaks (Q63). Defaults to true
autoBook body boolean Book the best option by itself when the poll closes. Off leaves every week to the owner. Defaults to true
secondRound body object
declineRepoll body object
standingRepoll body object
declineThreshold body integer Required declines that count as the time not working. Defaults to 3
declineWindow body integer …among this many of the latest meetings. Defaults to 6
mode body “repoll” or “standing” yes Re-poll: a suggested poll each period, then the best option booked. Standing time: one recurring event, re-polled when it stops working. Fixed at creation
standingWeekday body integer Standing time: the day of the week the meeting is on, 0 is Sunday
standingTime body string Standing time: the meeting’s local start time. Defaults to the window start
hostId body string (uuid) Whose calendar the events are booked into. Defaults to you; a team admin may name another team member
members body PollAttendeeInput[]

End a series: POST /v1/me/series/{seriesId}/end

Closes open polls and, for a standing time, ends the recurring event after today. The creator, the host or a team admin.

  • Needs: polls:write (not for credentials limited to some orgs)
  • CLI: quorum series end
  • MCP tool: series_end
  • Returns: 200 Series
Argument In Type Required Description
seriesId path string (uuid) yes

A series with its members and settings: GET /v1/me/series/{seriesId}

Team members.

  • Needs: polls:read (not for credentials limited to some orgs)
  • CLI: quorum series get
  • MCP tool: series_get
  • Returns: 200 Series
Argument In Type Required Description
seriesId path string (uuid) yes

List recurring poll series: GET /v1/me/series

Team members see the team’s series; a person sees their own.

  • Needs: polls:read (not for credentials limited to some orgs)
  • CLI: quorum series list
  • MCP tool: series_list
  • Returns: 200 object

Add a member to a series: POST /v1/me/series/{seriesId}/members

Q68, Q69. Owners add members directly: an org or team member, someone who shared availability with this owner, or an outsider by address (email and name). An outsider is emailed to answer each poll; their calendar counts only after they turn on automatic answers for the series. Members apply from the next meeting. The creator, the host or a team admin.

  • Needs: polls:write (not for credentials limited to some orgs)
  • CLI: quorum series members add
  • MCP tool: series_members_add
  • Returns: 201 SeriesMember
Argument In Type Required Description
seriesId path string (uuid) yes
userId body string (uuid) A person with an account: an org or team member, or anyone who shared availability
email body string (email) Anyone else, by address. Quorum can’t see their calendar; they answer the poll
name body string Required with email
required body boolean Defaults to true (Q75)

Remove a member from a series: DELETE /v1/me/series/{seriesId}/members/{memberId}

They are no longer asked, and a standing event stops inviting them from the next meeting. Their automatic-answer grant for the series is taken back. The creator, the host or a team admin.

  • Needs: polls:write (not for credentials limited to some orgs)
  • CLI: quorum series members remove
  • MCP tool: series_members_remove
  • Returns: no body
Argument In Type Required Description
seriesId path string (uuid) yes
memberId path string (uuid) yes

Make a member required or optional: PATCH /v1/me/series/{seriesId}/members/{memberId}

The creator, the host or a team admin.

  • Needs: polls:write (not for credentials limited to some orgs)
  • CLI: quorum series members update
  • MCP tool: series_members_update
  • Returns: 200 SeriesMember
Argument In Type Required Description
seriesId path string (uuid) yes
memberId path string (uuid) yes
required body boolean yes

Your place in a series: GET /v1/series/{seriesId}/membership

Only for a member (404 for anyone else, so a series’ existence isn’t revealed).

  • Needs: polls:read (not for credentials limited to some orgs)
  • CLI: quorum series memberships get
  • MCP tool: series_memberships_get
  • Returns: 200 SeriesMembership
Argument In Type Required Description
seriesId path string (uuid) yes

Leave a series: DELETE /v1/series/{seriesId}/membership

Q68. The link in a series’ first invite lands here. The owner is told; a required member leaving pauses the series until the owner decides. Your grant to the series goes with you.

  • Needs: polls:write (not for credentials limited to some orgs)
  • CLI: quorum series memberships leave
  • MCP tool: series_memberships_leave
  • Returns: no body
Argument In Type Required Description
seriesId path string (uuid) yes

The series you are a member of: GET /v1/me/series-memberships

Series that list you (by your account, or by the address you were added under). Names the series and whether it answers from your calendar; nothing about the other members.

  • Needs: polls:read (not for credentials limited to some orgs)
  • CLI: quorum series memberships list
  • MCP tool: series_memberships_list
  • Returns: 200 object

Pause a series: POST /v1/me/series/{seriesId}/pause

Nothing new is made or booked while it is paused; polls already open stay open and a standing event stays on the calendar. The creator, the host or a team admin.

  • Needs: polls:write (not for credentials limited to some orgs)
  • CLI: quorum series pause
  • MCP tool: series_pause
  • Returns: 200 Series
Argument In Type Required Description
seriesId path string (uuid) yes

Cancel the open new-time poll: DELETE /v1/me/series/{seriesId}/re-poll

The weekly time stays as it is. The creator, the host or a team admin.

  • Needs: polls:write (not for credentials limited to some orgs)
  • CLI: quorum series repoll cancel
  • MCP tool: series_repoll_cancel
  • Returns: no body
Argument In Type Required Description
seriesId path string (uuid) yes

The open new-time poll, ranked: GET /v1/me/series/{seriesId}/re-poll

Every option and who can’t make it. Team members; rate limited.

  • Needs: polls:read (not for credentials limited to some orgs)
  • CLI: quorum series repoll get
  • MCP tool: series_repoll_get
  • Returns: 200 object
Argument In Type Required Description
seriesId path string (uuid) yes

Choose the new weekly time: POST /v1/me/series/{seriesId}/re-poll/pick

Closes the poll and moves the series to that slot now. The creator, the host or a team admin.

  • Needs: polls:write (not for credentials limited to some orgs)
  • CLI: quorum series repoll pick
  • MCP tool: series_repoll_pick
  • Returns: 200 Series
Argument In Type Required Description
seriesId path string (uuid) yes
optionId body string (uuid) yes

Poll the group for a new weekly time: POST /v1/me/series/{seriesId}/re-poll

Standing time only (Q60, Q67): a poll of the next two weeks of candidate times. When it closes, the best option becomes the new weekly slot: the old recurring event ends and a new one starts. One can be open at a time. The creator, the host or a team admin.

  • Needs: polls:write (not for credentials limited to some orgs)
  • CLI: quorum series repoll start
  • MCP tool: series_repoll_start
  • Returns: 200 Series
Argument In Type Required Description
seriesId path string (uuid) yes

Resume a paused series: POST /v1/me/series/{seriesId}/resume

Weeks whose polls have already closed are not made up; the series carries on from the next. The creator, the host or a team admin.

  • Needs: polls:write (not for credentials limited to some orgs)
  • CLI: quorum series resume
  • MCP tool: series_resume
  • Returns: 200 Series
Argument In Type Required Description
seriesId path string (uuid) yes

Hand a series to someone else: POST /v1/me/series/{seriesId}/transfer

Q65. A team’s series keeps its team and moves to another org member’s calendar; a person’s series becomes the new person’s, who must already be a member. The old owner’s required place passes to the new owner, and a standing event ends on the old calendar and starts on the new one from the next meeting. A series paused because its host left resumes.

  • Needs: polls:write (not for credentials limited to some orgs)
  • CLI: quorum series transfer
  • MCP tool: series_transfer
  • Returns: 200 Series
Argument In Type Required Description
seriesId path string (uuid) yes
userId body string (uuid) yes

Change a series’ settings: PATCH /v1/me/series/{seriesId}

The creator, the host or a team admin. A cadence change starts at the next period not yet made, so no week is made twice. For a standing-time series a new weekday, time or interval ends the recurring event after the last meeting before the new slot and starts a new one (the old event first stays until the new exists).

  • Needs: polls:write (not for credentials limited to some orgs)
  • CLI: quorum series update
  • MCP tool: series_update
  • Returns: 200 Series
Argument In Type Required Description
seriesId path string (uuid) yes
title body string
description body string
durationMinutes body integer
timezone body string
meet body boolean
intervalWeeks body integer A period starts every this many weeks. Defaults to 1 (weekly)
startsOn body string The local date the first period starts on. A re-poll series defaults to the next Monday; a standing-time series to its first meeting
windowDays body integer How many days a period offers times on, at most the interval. Defaults to 7
weekdays body integer[] Days a time may start on, 0 is Sunday. Defaults to Monday to Friday
windowStart body string Earliest start, local. Defaults to 09:00
windowEnd body string Latest end, local. Defaults to 17:00
intervalMinutes body integer How often a time may start. Defaults to 30
timing body “fixed” or “rolling” Fixed (Q66): the poll opens and closes at set times before each period. Rolling: it opens when the previous meeting ends and closes 48 hours before the earliest option
openDaysBefore body integer Fixed timing: days before the period the poll opens. Defaults to 3 (Friday for a Monday period)
openTime body string HH:MM, local
closeDaysBefore body integer Fixed timing: days before the period the poll closes. Defaults to 2 (Saturday noon for a Monday period; one day leaves under the 24 hours a second round needs before a 09:00 start)
closeTime body string Defaults to 12:00
respectBreaks body boolean Skip the org’s, team’s and personal breaks (Q63). Defaults to true
autoBook body boolean Book the best option by itself when the poll closes. Off leaves every week to the owner. Defaults to true
secondRound body object
declineRepoll body object
standingRepoll body object
declineThreshold body integer Required declines that count as the time not working. Defaults to 3
declineWindow body integer …among this many of the latest meetings. Defaults to 6
standingWeekday body integer Standing time: the day of the week the meeting is on, 0 is Sunday
standingTime body string Standing time: the meeting’s local start time. Defaults to the window start

One week with every option and who can’t make it: GET /v1/me/series/{seriesId}/occurrences/{occurrenceId}

When no option works for every required member (Q62), this is the fallback the owner picks from: every option, most people available first then the earlier date, each with the names of who can’t make it. States only, never a time or title from anyone’s calendar. Team members; rate limited.

  • Needs: polls:read (not for credentials limited to some orgs)
  • CLI: quorum series weeks get
  • MCP tool: series_weeks_get
  • Returns: 200 SeriesWeekDetail
Argument In Type Required Description
seriesId path string (uuid) yes
occurrenceId path string (uuid) yes

Keep a declined meeting as it is: POST /v1/me/series/{seriesId}/occurrences/{occurrenceId}/keep

Standing time only. The meeting stays at its usual time whoever declined. The creator, the host or a team admin.

  • Needs: polls:write (not for credentials limited to some orgs)
  • CLI: quorum series weeks keep
  • MCP tool: series_weeks_keep
  • Returns: 200 SeriesWeek
Argument In Type Required Description
seriesId path string (uuid) yes
occurrenceId path string (uuid) yes

A series’ history: each week and what became of it: GET /v1/me/series/{seriesId}/occurrences

Team members. Newest first.

  • Needs: polls:read (not for credentials limited to some orgs)
  • CLI: quorum series weeks list
  • MCP tool: series_weeks_list
  • Returns: 200 object
Argument In Type Required Description
seriesId path string (uuid) yes

Pick the time for a week: POST /v1/me/series/{seriesId}/occurrences/{occurrenceId}/pick

Q62. Books the chosen option now: a re-poll series creates the event, a standing one moves that week’s meeting. Works from the owner’s fallback or at any time before the week is decided. The creator, the host or a team admin.

  • Needs: polls:write (not for credentials limited to some orgs)
  • CLI: quorum series weeks pick
  • MCP tool: series_weeks_pick
  • Returns: 200 SeriesWeek
Argument In Type Required Description
seriesId path string (uuid) yes
occurrenceId path string (uuid) yes
optionId body string (uuid) yes

Start the automatic step for a week now: POST /v1/me/series/{seriesId}/occurrences/{occurrenceId}/re-poll

Re-poll series: the second round (Q62), asking only the required people. Standing time: a one-off poll for the week (Q67). Use it to approve a step set to ask, or to run one set to off. The creator, the host or a team admin.

  • Needs: polls:write (not for credentials limited to some orgs)
  • CLI: quorum series weeks repoll
  • MCP tool: series_weeks_repoll
  • Returns: 200 SeriesWeek
Argument In Type Required Description
seriesId path string (uuid) yes
occurrenceId path string (uuid) yes

Skip a week: POST /v1/me/series/{seriesId}/occurrences/{occurrenceId}/skip

Q62, Q63. Nothing is booked for the week; a standing meeting is cancelled for it. The creator, the host or a team admin.

  • Needs: polls:write (not for credentials limited to some orgs)
  • CLI: quorum series weeks skip
  • MCP tool: series_weeks_skip
  • Returns: 200 SeriesWeek
Argument In Type Required Description
seriesId path string (uuid) yes
occurrenceId path string (uuid) yes

Add a break: POST /v1/orgs/{handle}/teams/{teamPath}/breaks

A team’s break applies to the team’s series; a person’s own to their series. Org-wide breaks are added at the org (Q63). Team admins; a person for themselves.

  • Needs: polls:write
  • CLI: quorum team series breaks create
  • MCP tool: team_series_breaks_create
  • Returns: 201 SeriesBreak
Argument In Type Required Description
handle path string yes
teamPath path string yes The team’s slug or id
label body string yes
startsOn body string yes
endsOn body string yes

Remove a break: DELETE /v1/orgs/{handle}/teams/{teamPath}/breaks/{breakId}

Only the team’s or the person’s own; an org-wide break is removed at the org.

  • Needs: polls:write
  • CLI: quorum team series breaks delete
  • MCP tool: team_series_breaks_delete
  • Returns: no body
Argument In Type Required Description
handle path string yes
teamPath path string yes The team’s slug or id
breakId path string (uuid) yes

Breaks that series skip: GET /v1/orgs/{handle}/teams/{teamPath}/breaks

Date ranges (inclusive) every series here skips unless it opts out (Q63). A team sees its org’s breaks and its own; a person their own.

  • Needs: polls:read
  • CLI: quorum team series breaks list
  • MCP tool: team_series_breaks_list
  • Returns: 200 object
Argument In Type Required Description
handle path string yes
teamPath path string yes The team’s slug or id

Start a recurring poll series: POST /v1/orgs/{handle}/teams/{teamPath}/series

A series is owned by you or this team and books into the host’s calendar. Re-poll makes a suggested poll for each period (opening and closing as timing says), prefilled from calendars, and books the best option at the deadline (Q58, Q61). Standing time keeps one recurring event and watches it for declines (Q60, Q67). Members are required or optional; people with an account are read only where they shared availability, and an outsider by address is asked by email (Q69). Everything automatic can be set to auto, ask or off (Q66).

  • Needs: polls:write
  • CLI: quorum team series create
  • MCP tool: team_series_create
  • Returns: 201 Series
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
meet body boolean
intervalWeeks body integer A period starts every this many weeks. Defaults to 1 (weekly)
startsOn body string The local date the first period starts on. A re-poll series defaults to the next Monday; a standing-time series to its first meeting
windowDays body integer How many days a period offers times on, at most the interval. Defaults to 7
weekdays body integer[] Days a time may start on, 0 is Sunday. Defaults to Monday to Friday
windowStart body string Earliest start, local. Defaults to 09:00
windowEnd body string Latest end, local. Defaults to 17:00
intervalMinutes body integer How often a time may start. Defaults to 30
timing body “fixed” or “rolling” Fixed (Q66): the poll opens and closes at set times before each period. Rolling: it opens when the previous meeting ends and closes 48 hours before the earliest option
openDaysBefore body integer Fixed timing: days before the period the poll opens. Defaults to 3 (Friday for a Monday period)
openTime body string HH:MM, local
closeDaysBefore body integer Fixed timing: days before the period the poll closes. Defaults to 2 (Saturday noon for a Monday period; one day leaves under the 24 hours a second round needs before a 09:00 start)
closeTime body string Defaults to 12:00
respectBreaks body boolean Skip the org’s, team’s and personal breaks (Q63). Defaults to true
autoBook body boolean Book the best option by itself when the poll closes. Off leaves every week to the owner. Defaults to true
secondRound body object
declineRepoll body object
standingRepoll body object
declineThreshold body integer Required declines that count as the time not working. Defaults to 3
declineWindow body integer …among this many of the latest meetings. Defaults to 6
mode body “repoll” or “standing” yes Re-poll: a suggested poll each period, then the best option booked. Standing time: one recurring event, re-polled when it stops working. Fixed at creation
standingWeekday body integer Standing time: the day of the week the meeting is on, 0 is Sunday
standingTime body string Standing time: the meeting’s local start time. Defaults to the window start
hostId body string (uuid) Whose calendar the events are booked into. Defaults to you; a team admin may name another team member
members body PollAttendeeInput[]

End a series: POST /v1/orgs/{handle}/teams/{teamPath}/series/{seriesId}/end

Closes open polls and, for a standing time, ends the recurring event after today. The creator, the host or a team admin.

  • Needs: polls:write
  • CLI: quorum team series end
  • MCP tool: team_series_end
  • Returns: 200 Series
Argument In Type Required Description
handle path string yes
teamPath path string yes The team’s slug or id
seriesId path string (uuid) yes

A series with its members and settings: GET /v1/orgs/{handle}/teams/{teamPath}/series/{seriesId}

Team members.

  • Needs: polls:read
  • CLI: quorum team series get
  • MCP tool: team_series_get
  • Returns: 200 Series
Argument In Type Required Description
handle path string yes
teamPath path string yes The team’s slug or id
seriesId path string (uuid) yes

List recurring poll series: GET /v1/orgs/{handle}/teams/{teamPath}/series

Team members see the team’s series; a person sees their own.

  • Needs: polls:read
  • CLI: quorum team series list
  • MCP tool: team_series_list
  • Returns: 200 object
Argument In Type Required Description
handle path string yes
teamPath path string yes The team’s slug or id

Add a member to a series: POST /v1/orgs/{handle}/teams/{teamPath}/series/{seriesId}/members

Q68, Q69. Owners add members directly: an org or team member, someone who shared availability with this owner, or an outsider by address (email and name). An outsider is emailed to answer each poll; their calendar counts only after they turn on automatic answers for the series. Members apply from the next meeting. The creator, the host or a team admin.

  • Needs: polls:write
  • CLI: quorum team series members add
  • MCP tool: team_series_members_add
  • Returns: 201 SeriesMember
Argument In Type Required Description
handle path string yes
teamPath path string yes The team’s slug or id
seriesId path string (uuid) yes
userId body string (uuid) A person with an account: an org or team member, or anyone who shared availability
email body string (email) Anyone else, by address. Quorum can’t see their calendar; they answer the poll
name body string Required with email
required body boolean Defaults to true (Q75)

Remove a member from a series: DELETE /v1/orgs/{handle}/teams/{teamPath}/series/{seriesId}/members/{memberId}

They are no longer asked, and a standing event stops inviting them from the next meeting. Their automatic-answer grant for the series is taken back. The creator, the host or a team admin.

  • Needs: polls:write
  • CLI: quorum team series members remove
  • MCP tool: team_series_members_remove
  • Returns: no body
Argument In Type Required Description
handle path string yes
teamPath path string yes The team’s slug or id
seriesId path string (uuid) yes
memberId path string (uuid) yes

Make a member required or optional: PATCH /v1/orgs/{handle}/teams/{teamPath}/series/{seriesId}/members/{memberId}

The creator, the host or a team admin.

  • Needs: polls:write
  • CLI: quorum team series members update
  • MCP tool: team_series_members_update
  • Returns: 200 SeriesMember
Argument In Type Required Description
handle path string yes
teamPath path string yes The team’s slug or id
seriesId path string (uuid) yes
memberId path string (uuid) yes
required body boolean yes

Pause a series: POST /v1/orgs/{handle}/teams/{teamPath}/series/{seriesId}/pause

Nothing new is made or booked while it is paused; polls already open stay open and a standing event stays on the calendar. The creator, the host or a team admin.

  • Needs: polls:write
  • CLI: quorum team series pause
  • MCP tool: team_series_pause
  • Returns: 200 Series
Argument In Type Required Description
handle path string yes
teamPath path string yes The team’s slug or id
seriesId path string (uuid) yes

Cancel the open new-time poll: DELETE /v1/orgs/{handle}/teams/{teamPath}/series/{seriesId}/re-poll

The weekly time stays as it is. The creator, the host or a team admin.

  • Needs: polls:write
  • CLI: quorum team series repoll cancel
  • MCP tool: team_series_repoll_cancel
  • Returns: no body
Argument In Type Required Description
handle path string yes
teamPath path string yes The team’s slug or id
seriesId path string (uuid) yes

The open new-time poll, ranked: GET /v1/orgs/{handle}/teams/{teamPath}/series/{seriesId}/re-poll

Every option and who can’t make it. Team members; rate limited.

  • Needs: polls:read
  • CLI: quorum team series repoll get
  • MCP tool: team_series_repoll_get
  • Returns: 200 object
Argument In Type Required Description
handle path string yes
teamPath path string yes The team’s slug or id
seriesId path string (uuid) yes

Choose the new weekly time: POST /v1/orgs/{handle}/teams/{teamPath}/series/{seriesId}/re-poll/pick

Closes the poll and moves the series to that slot now. The creator, the host or a team admin.

  • Needs: polls:write
  • CLI: quorum team series repoll pick
  • MCP tool: team_series_repoll_pick
  • Returns: 200 Series
Argument In Type Required Description
handle path string yes
teamPath path string yes The team’s slug or id
seriesId path string (uuid) yes
optionId body string (uuid) yes

Poll the group for a new weekly time: POST /v1/orgs/{handle}/teams/{teamPath}/series/{seriesId}/re-poll

Standing time only (Q60, Q67): a poll of the next two weeks of candidate times. When it closes, the best option becomes the new weekly slot: the old recurring event ends and a new one starts. One can be open at a time. The creator, the host or a team admin.

  • Needs: polls:write
  • CLI: quorum team series repoll start
  • MCP tool: team_series_repoll_start
  • Returns: 200 Series
Argument In Type Required Description
handle path string yes
teamPath path string yes The team’s slug or id
seriesId path string (uuid) yes

Resume a paused series: POST /v1/orgs/{handle}/teams/{teamPath}/series/{seriesId}/resume

Weeks whose polls have already closed are not made up; the series carries on from the next. The creator, the host or a team admin.

  • Needs: polls:write
  • CLI: quorum team series resume
  • MCP tool: team_series_resume
  • Returns: 200 Series
Argument In Type Required Description
handle path string yes
teamPath path string yes The team’s slug or id
seriesId path string (uuid) yes

Hand a series to someone else: POST /v1/orgs/{handle}/teams/{teamPath}/series/{seriesId}/transfer

Q65. A team’s series keeps its team and moves to another org member’s calendar; a person’s series becomes the new person’s, who must already be a member. The old owner’s required place passes to the new owner, and a standing event ends on the old calendar and starts on the new one from the next meeting. A series paused because its host left resumes.

  • Needs: polls:write
  • CLI: quorum team series transfer
  • MCP tool: team_series_transfer
  • Returns: 200 Series
Argument In Type Required Description
handle path string yes
teamPath path string yes The team’s slug or id
seriesId path string (uuid) yes
userId body string (uuid) yes

Change a series’ settings: PATCH /v1/orgs/{handle}/teams/{teamPath}/series/{seriesId}

The creator, the host or a team admin. A cadence change starts at the next period not yet made, so no week is made twice. For a standing-time series a new weekday, time or interval ends the recurring event after the last meeting before the new slot and starts a new one (the old event first stays until the new exists).

  • Needs: polls:write
  • CLI: quorum team series update
  • MCP tool: team_series_update
  • Returns: 200 Series
Argument In Type Required Description
handle path string yes
teamPath path string yes The team’s slug or id
seriesId path string (uuid) yes
title body string
description body string
durationMinutes body integer
timezone body string
meet body boolean
intervalWeeks body integer A period starts every this many weeks. Defaults to 1 (weekly)
startsOn body string The local date the first period starts on. A re-poll series defaults to the next Monday; a standing-time series to its first meeting
windowDays body integer How many days a period offers times on, at most the interval. Defaults to 7
weekdays body integer[] Days a time may start on, 0 is Sunday. Defaults to Monday to Friday
windowStart body string Earliest start, local. Defaults to 09:00
windowEnd body string Latest end, local. Defaults to 17:00
intervalMinutes body integer How often a time may start. Defaults to 30
timing body “fixed” or “rolling” Fixed (Q66): the poll opens and closes at set times before each period. Rolling: it opens when the previous meeting ends and closes 48 hours before the earliest option
openDaysBefore body integer Fixed timing: days before the period the poll opens. Defaults to 3 (Friday for a Monday period)
openTime body string HH:MM, local
closeDaysBefore body integer Fixed timing: days before the period the poll closes. Defaults to 2 (Saturday noon for a Monday period; one day leaves under the 24 hours a second round needs before a 09:00 start)
closeTime body string Defaults to 12:00
respectBreaks body boolean Skip the org’s, team’s and personal breaks (Q63). Defaults to true
autoBook body boolean Book the best option by itself when the poll closes. Off leaves every week to the owner. Defaults to true
secondRound body object
declineRepoll body object
standingRepoll body object
declineThreshold body integer Required declines that count as the time not working. Defaults to 3
declineWindow body integer …among this many of the latest meetings. Defaults to 6
standingWeekday body integer Standing time: the day of the week the meeting is on, 0 is Sunday
standingTime body string Standing time: the meeting’s local start time. Defaults to the window start

One week with every option and who can’t make it: GET /v1/orgs/{handle}/teams/{teamPath}/series/{seriesId}/occurrences/{occurrenceId}

When no option works for every required member (Q62), this is the fallback the owner picks from: every option, most people available first then the earlier date, each with the names of who can’t make it. States only, never a time or title from anyone’s calendar. Team members; rate limited.

  • Needs: polls:read
  • CLI: quorum team series weeks get
  • MCP tool: team_series_weeks_get
  • Returns: 200 SeriesWeekDetail
Argument In Type Required Description
handle path string yes
teamPath path string yes The team’s slug or id
seriesId path string (uuid) yes
occurrenceId path string (uuid) yes

Keep a declined meeting as it is: POST /v1/orgs/{handle}/teams/{teamPath}/series/{seriesId}/occurrences/{occurrenceId}/keep

Standing time only. The meeting stays at its usual time whoever declined. The creator, the host or a team admin.

  • Needs: polls:write
  • CLI: quorum team series weeks keep
  • MCP tool: team_series_weeks_keep
  • Returns: 200 SeriesWeek
Argument In Type Required Description
handle path string yes
teamPath path string yes The team’s slug or id
seriesId path string (uuid) yes
occurrenceId path string (uuid) yes

A series’ history: each week and what became of it: GET /v1/orgs/{handle}/teams/{teamPath}/series/{seriesId}/occurrences

Team members. Newest first.

  • Needs: polls:read
  • CLI: quorum team series weeks list
  • MCP tool: team_series_weeks_list
  • Returns: 200 object
Argument In Type Required Description
handle path string yes
teamPath path string yes The team’s slug or id
seriesId path string (uuid) yes

Pick the time for a week: POST /v1/orgs/{handle}/teams/{teamPath}/series/{seriesId}/occurrences/{occurrenceId}/pick

Q62. Books the chosen option now: a re-poll series creates the event, a standing one moves that week’s meeting. Works from the owner’s fallback or at any time before the week is decided. The creator, the host or a team admin.

  • Needs: polls:write
  • CLI: quorum team series weeks pick
  • MCP tool: team_series_weeks_pick
  • Returns: 200 SeriesWeek
Argument In Type Required Description
handle path string yes
teamPath path string yes The team’s slug or id
seriesId path string (uuid) yes
occurrenceId path string (uuid) yes
optionId body string (uuid) yes

Start the automatic step for a week now: POST /v1/orgs/{handle}/teams/{teamPath}/series/{seriesId}/occurrences/{occurrenceId}/re-poll

Re-poll series: the second round (Q62), asking only the required people. Standing time: a one-off poll for the week (Q67). Use it to approve a step set to ask, or to run one set to off. The creator, the host or a team admin.

  • Needs: polls:write
  • CLI: quorum team series weeks repoll
  • MCP tool: team_series_weeks_repoll
  • Returns: 200 SeriesWeek
Argument In Type Required Description
handle path string yes
teamPath path string yes The team’s slug or id
seriesId path string (uuid) yes
occurrenceId path string (uuid) yes

Skip a week: POST /v1/orgs/{handle}/teams/{teamPath}/series/{seriesId}/occurrences/{occurrenceId}/skip

Q62, Q63. Nothing is booked for the week; a standing meeting is cancelled for it. The creator, the host or a team admin.

  • Needs: polls:write
  • CLI: quorum team series weeks skip
  • MCP tool: team_series_weeks_skip
  • Returns: 200 SeriesWeek
Argument In Type Required Description
handle path string yes
teamPath path string yes The team’s slug or id
seriesId path string (uuid) yes
occurrenceId path string (uuid) yes