Create an expiration date field that auto expires
You can use Scheduler to unpublish the node (and then optionally use Scheduler's hooks/events to delete the node). However, to get the date set into the Scheduler unpublish_on field, you could use Rules (reacting on 'after creating' event) or use your own custom mymodule_hook_save() to set the date.

We are also in the process of migrating Scheduler's actions and events for Rules, (see https://www.drupal.org/node/2651348) and I think that Rules would then let you delete the node reacting to being unpublished by Scheduler.