You need two things to accomplish this:
- first set the publish dates as you want for your item (and parent items if needed)
- enable the autopublisher
The autopublisher is an agent that is disabled by default. You will find it in the config:
<agent type="Sitecore.Tasks.PublishAgent" method="Run" interval="00:00:00">
<param desc="source database">master</param>
<param desc="target database">web</param>
<param desc="mode (full or smart or incremental)">incremental</param>
<param desc="languages">en, da</param>
Patch the values to set it as you need. You need to change the interval (00:00:00 is disabled) to your needs (also take into account the scheduling frequency) and set the languages.
This agent will perform an incremental publish at the defined interval - don't do it too frequent as it might have a performance hit (cache clear) - and (un)publish the items that have passed their publish dates.