code: func GenerateSchedule(clock clockwork.Clock, gracePeriod time.Duration) (*RotationSchedule, error) {
  	if gracePeriod <= 0 {
  		return nil, trace.BadParameter("invalid grace period %q, provide value > 0", gracePeriod)
  	}
  	return &RotationSchedule{
  		UpdateClients: clock.Now().UTC().Add(gracePeriod / 3).UTC(),
  		UpdateServers: clock.Now().UTC().Add((gracePeriod * 2) / 3).UTC(),
  		Standby:       clock.Now().UTC().Add(gracePeriod).UTC(),
  	}, nil
  }
docs: // GenerateSchedule generates schedule based on the time period, using
  // even time periods between rotation phases.