func AreSame(arr1, arr2 []Schedule) bool {
	if len(arr1) != len(arr2) {
		return false
	}
	counter := make(map[string]int)
	for _, s := range arr1 {
		counter[s.ID()]++
	}
	for _, s := range arr2 {
		if _, found := counter[s.ID()]; !found {
			return false
		}
		counter[s.ID()]--
		if counter[s.ID()] == 0 {
			delete(counter, s.ID())
		}
	}
	return len(counter) == 0
}
checks if two slices of schedules are the same (order doesn't matter)
package schedule
import "strings"
func CheckSchedule(s Schedule) []error {
	result := make([]error, 0)
	if strings.TrimSpace(s.ID()) == "" {
		result = append(result, ErrInvalidScheduleID)
	}
	if s.Epoch() < 0 {
		result = append(result, ErrInvalidScheduleEpoch)
	}
	return result
}