Is there a way to set a new property on an entry
You need to create the field in the CMS, however you don't need to assign it to any section. It should still be available to your plugin and twig templates.

The other reason your code will result in an error is because $entry-&gt;secretName is in fact being processed by the BaseElementModel magic getter method, so is the same as writing $entry-&gt;getFieldValue('secretName'), which obviously cannot be set to a new value.

The proper way to do this is using the setContent method as follows:

$criteria = craft()-&gt;elements-&gt;getCriteria(ElementType::Entry);
$criteria-&gt;section = 'dogs';
$entries = $criteria-&gt;find();

foreach ($entries as $entry) {
    $entry-&gt;setContent(array(
        'secretName' =&gt; urlencode($entry-&gt;title)
    ));
    craft()-&gt;entries-&gt;saveEntry($entry);
endforeach;


See this answer for a more thorough explanation on setting entry content.