a method of dynamically scheduling a workforce includes obtaining workforce requirements , attributes and employee preferences , determining a workforce schedule based on the workforce requirements and attributes , determining a schedule value based on workforce requirements and employee preferences , and iteratively modifying the workforce schedule , determining a schedule value based on workforce requirements and preferences for the modified workforce schedule , and comparing schedule values to determine a best workforce schedule .