I have a "Contest" model that a user creates and one of the fields is
(endTime = models.DateField(default=datetime.now()+timedelta(days=7))
To schedule a task you can look here
as for a this question,
procedure to identify that the datetime field has passed
This would work:
So you would have a task running continuously that would call a django command every X hours, that would use the above search to find any expired contests.