A computer implemented method for scheduling the charging of electric vehicles by an electric vehicle charging system being performed by a processor, the method comprising: determining a plurality of electric charging schedules for one or more electric vehicles, wherein each of the plurality of electric charging schedules meets one or more system constraints and one or more user preferences; wherein the system constraints include a power grid capacity and a maximum charge current or charge curve for each of one or more electric vehicles or batteries to be charged; wherein the one or more user preferences include a charging end time or vehicle departure time, and a requested charge amount, for each of one or more electric vehicles; determining, for each of the electric charging schedules, a respective plurality of charging objective values, the plurality of charging objective values including a value associated with minimizing battery degradation from charging the one or more electric vehicles, the value associated with minimizing battery degradation being determined based on, for each of the one or more electric vehicles, an amount of current used for battery charging and a number of times that charging is stopped and restarted; assigning a weight to each of the charging objective values, wherein assigning a weight to each of the charging objective values, comprises receiving the weights from a user or administrator, wherein one set of weights is used for the plurality of electric charging schedules; characterised by calculating a fitness value for each of the electric charging schedules based on the sum of the weighted charging objective values for each respective electric charging schedule and the set of weights; identifying the electric charging schedule having a highest fitness value; and selecting the electric charging schedule having the highest fitness value for charging one or more electric vehicles. determining a plurality of electric charging schedules for one or more electric vehicles, wherein each of the plurality of electric charging schedules meets one or more system constraints and one or more user preferences; wherein the system constraints include a power grid capacity and a maximum charge current or charge curve for each of one or more electric vehicles or batteries to be charged; wherein the one or more user preferences include a charging end time or vehicle departure time, and a requested charge amount, for each of one or more electric vehicles; determining, for each of the electric charging schedules, a respective plurality of charging objective values, the plurality of charging objective values including a value associated with minimizing battery degradation from charging the one or more electric vehicles, the value associated with minimizing battery degradation being determined based on, for each of the one or more electric vehicles, an amount of current used for battery charging and a number of times that charging is stopped and restarted; assigning a weight to each of the charging objective values, wherein assigning a weight to each of the charging objective values, comprises receiving the weights from a user or administrator, wherein one set of weights is used for the plurality of electric charging schedules; characterised by calculating a fitness value for each of the electric charging schedules based on the sum of the weighted charging objective values for each respective electric charging schedule and the set of weights; identifying the electric charging schedule having a highest fitness value; and selecting the electric charging schedule having the highest fitness value for charging one or more electric vehicles.