How Schedules Are Created
Understanding the automatic schedule generation process
Quick Summary
When you click "Generate New Schedule," the system:
- Checks if you already have enough upcoming meetings
- Creates or extends schedules based on your club's settings
- Calculates meeting dates using your configured meeting interval and day
- Assigns members to roles automatically using a fair rotation algorithm
- Preserves existing assignments when building on published schedules
Schedule Creation Process
Step 1: Check for Existing Future Meetings
Before creating anything new, the system looks at your existing schedules (both draft and published) to see if you already have enough upcoming meetings scheduled.
- Your club settings determine how many meetings should be in each schedule (2, 4, or 6 meetings)
- The system counts meetings that haven't happened yet (future meetings)
- If you already have the required number of future meetings, no new schedule is created
Your club is set to generate 4 meetings per schedule. You have a published schedule with 3 future meetings. The system will create a new schedule with those 3 meetings plus 1 additional meeting (total: 4 meetings).
Step 2: Determine Schedule Creation Strategy
The system follows different strategies depending on your situation:
Strategy A: Extend Existing Draft Schedule
When this happens: You have a draft schedule with some future meetings, but not enough
What the system does:
- Adds new meetings to your existing draft schedule
- Calculates new meeting dates starting after the last meeting in the draft
- Updates the schedule name to reflect the new date range
- Runs the assignment algorithm only for the newly added meetings
Why this is helpful: Preserves any manual adjustments you made to existing assignments
Strategy B: Create New Draft from Published Schedule
When this happens: Your most recent published schedule has some future meetings, but not enough
What the system does:
- Creates a brand new draft schedule
- Copies the remaining future meetings from the published schedule
- Adds additional new meetings to reach your target count
- Copies all existing assignments from the old meetings (preserves member assignments and their status)
- Runs the assignment algorithm only for the newly added meetings
Why this is helpful: Members who already confirmed their roles don't lose their assignments
Strategy C: Create Completely New Schedule
When this happens: You have no existing schedules, OR all your existing schedules have passed (no future meetings)
What the system does:
- Creates a fresh schedule starting from today (or after your last meeting date)
- Calculates all meeting dates from scratch
- Runs the assignment algorithm for all meetings
Step 3: Calculate Meeting Dates
The system calculates meeting dates based on your club's configuration:
Setting | Description | How Dates Are Calculated |
---|---|---|
Weekly | Meets every week on the same day | Finds the next occurrence of your meeting day (e.g., next Thursday), then adds 1 week repeatedly |
Monthly | Meets once per month on a specific week | Finds the 1st/2nd/3rd/4th occurrence of your meeting day each month |
Bi-weekly | Meets twice per month on specific weeks | Combines two week patterns (e.g., 1st and 3rd Thursday of each month) |
Custom | Uses manually entered dates | Uses the specific dates entered by your administrator (up to 6 dates) |
Step 4: Automatically Assign Members to Roles
Once meetings are created, the system automatically assigns members to roles using a sophisticated algorithm designed to be fair and balanced.
Assignment Priority Order
Roles are assigned in this specific order to ensure the most important roles are filled first:
- Speakers (assigned to least experienced members first)
- Toastmaster (major role)
- Evaluators (assigned to most experienced members, matched to speakers)
- General Evaluator (major role)
- Table Topics Master (major role)
- Remaining roles (Timer, Grammarian, Ah-Counter, etc.)
How the Algorithm Chooses Members
For each role assignment, the system follows these rules in order:
1. Basic Eligibility Filters
A member is NOT eligible if they:
- Are already assigned to another role in the same meeting (unless the role allows concurrent assignments)
- Have marked themselves absent for that date
- Have been administratively opted out of that specific role by a club admin
- Have a membership expiration date that has passed before the meeting date
2. Role Prerequisites
If a role has prerequisites (e.g., "Must complete 3 speeches before being an Evaluator"):
- Members must have completed the required number of the prerequisite role
- Exception: Members with "Eligible for All Roles" override bypass prerequisite checks
- Members without sufficient completions are skipped
3. Major Role Gap Restrictions
For major roles (Toastmaster, General Evaluator, Table Topics Master):
- The system checks when the member last performed any major role
- Members must wait a minimum number of weeks between major roles (configured by club admin)
- This gap requirement applies to everyone, even members with "Eligible for All Roles" override
- The system checks both historical role completions AND assignments within the current schedule
Your club requires 2 weeks between major roles. John was Toastmaster on January 9.
❌ John is NOT eligible for General Evaluator on January 16 (only 1 week gap)
✅ John IS eligible for General Evaluator on January 23 (2+ week gap)
4. President-Only Roles
Some roles (like Presiding Officer) can only be filled by club presidents:
- Only members marked as "President" are eligible
- All other members are automatically filtered out
5. Fair Rotation Selection
Once eligible members are identified, the system selects based on fairness:
Highest Priority: Members who have never performed this specific role
- These members are always selected first
- Ensures everyone gets experience with new roles
Next Priority: Members who haven't done this role in the longest time
- The system calculates how many days since each member last did this role
- It checks BOTH historical completions AND assignments in the current schedule
- The member with the longest gap is selected
6. Placeholder Assignments
If no eligible members are found:
- The system creates a "placeholder" assignment with no member assigned
- The assignment appears as "No Eligible Member Found" in the schedule
- Club administrators can manually assign someone later
Step 5: Preserve Existing Assignments
When creating a new draft schedule from a published schedule, the system carefully preserves member assignments:
What Gets Copied
- Member assignments (who was assigned to which role)
- Assignment status (pending, accepted, or rejected)
- Assignment numbers (for roles with multiple slots, like Speaker #1, Speaker #2)
Why This Matters
- Members who already accepted their roles don't need to reconfirm
- Avoids confusion and duplicate notifications
- Maintains schedule continuity across the transition from published to draft
Schedule Status Workflow
Schedules move through three status levels:
Draft Status
- Purpose: Allows review and manual adjustments before members see it
- Who can see it: Only club administrators
- What you can do: Edit assignments, add/remove meetings, delete the schedule
- Can be extended: Yes - the system can add more meetings if needed
Published Status
- Purpose: Makes the schedule visible to all club members
- Who can see it: All club members
- What you can do: Members can accept/decline assignments, admins can still make changes
- Can be extended: No - once published, new meetings require a new draft schedule
Archived Status
- Purpose: Historical record of past schedules
- Who can see it: Club administrators (members see it in history)
- What you can do: View only - no modifications allowed
- When to use: After all meetings have passed and the schedule is no longer active
Special Features and Behaviors
Within-Schedule Awareness
The assignment algorithm is "aware" of assignments within the same schedule:
- When checking rotation fairness, it considers assignments earlier in the current schedule
- Prevents members from being assigned the same role too frequently within one schedule
- Example: If John did Timer on meeting 1 of the schedule, he won't get Timer again on meeting 2 (unless no one else is eligible)
Member Override: "Eligible for All Roles"
Club administrators can mark specific members with "Eligible for All Roles" status:
- Bypasses: Role prerequisite requirements, absence restrictions, membership expiration
- Does NOT bypass: Major role gaps, president-only restrictions, role opt-outs, concurrent assignment limits
- Use case: Experienced members who can fill any role when needed
Role Opt-Outs (Admin Setting)
Administrators can prevent specific members from being assigned to specific roles:
- This is different from a member marking themselves absent
- Used for permanent preferences or restrictions (e.g., "Sarah should never be assigned as Speaker")
- Applies to all members, including those with "Eligible for All Roles" override
Concurrent Role Assignments
Some roles allow members to perform multiple roles in the same meeting:
- Example: A member could be both Timer and Grammarian
- Only allowed when the role is configured with "Allow Concurrent Assignments"
- Used as a backup option when no other eligible members are available
Configuration Settings That Affect Schedule Creation
Club administrators control schedule creation behavior through these settings:
Setting | Location | Impact on Schedules |
---|---|---|
Meetings to Generate | Schedule Options | Determines how many meetings are created (2, 4, or 6) |
Meeting Interval | Schedule Options | Controls how meeting dates are calculated (weekly, monthly, etc.) |
Meeting Day | Schedule Options | Which day of the week meetings occur |
Custom Dates | Schedule Options | Specific dates when using "Custom" interval |
Major Role Gap Weeks | Schedule Options | Minimum weeks between major role assignments |
Timezone | Schedule Options | Ensures dates/times are calculated correctly for your location |
Frequently Asked Questions
Q: Why wasn't a new schedule created when I clicked "Generate New Schedule"?
A: You already have enough future meetings. The system only creates schedules when your existing schedules have fewer upcoming meetings than your "meetings to generate" setting.
Q: Why does the schedule show "No Eligible Member Found" for some roles?
A: No active members met all the eligibility criteria for that role (prerequisites, major role gaps, absences, opt-outs). A club administrator needs to manually assign someone or review member settings.
Q: Why did some assignments carry over from my published schedule?
A: When you still have future meetings in a published schedule, the system preserves those assignments in the new draft schedule to avoid disrupting members who already confirmed their roles.
Q: Can I change meeting dates after a schedule is created?
A: Yes, administrators can edit meeting dates in draft schedules. However, you cannot edit dates in published schedules without unpublishing them first.
Q: How does the system handle holidays or special events?
A: The automatic calculation doesn't skip holidays. After generating a schedule, administrators should review the dates and mark specific meetings as "Holiday Event" or "No Meeting" as needed.
Q: Why is the same person assigned to multiple major roles?
A: Check your club's "Major Role Gap Weeks" setting. If it's set to 0 or 1 week, and you don't have enough members, the system may assign the same person to multiple major roles across different meetings. Increase the gap setting to spread major roles more evenly.
Tips for Best Results
- Review draft schedules carefully before publishing - the algorithm is smart, but manual review ensures quality
- Keep member absence dates up to date - accurate absence tracking leads to better assignments
- Configure role prerequisites appropriately - ensures members are ready for advanced roles
- Set major role gaps based on your club size - larger clubs can have bigger gaps for better rotation
- Use "Eligible for All Roles" sparingly - reserve it for experienced members who truly can fill any gap
- Publish schedules well in advance - gives members time to accept/decline and plan accordingly
- Archive old schedules regularly - keeps your schedule list clean and focused on current/upcoming schedules