apscheduler.triggers.date

class apscheduler.triggers.date.DateTrigger(run_date=None, timezone=None)

Bases: BaseTrigger

Triggers once on the given datetime. If run_date is left empty, current time is used.

Parameters:
  • run_date (datetime|str) – the date/time to run the job at

  • timezone (datetime.tzinfo|str) – time zone for run_date if it doesn’t have one already

get_next_fire_time(previous_fire_time, now)

Returns the next datetime to fire on, If no such datetime can be calculated, returns None.

Parameters:

API

Trigger alias for add_job(): date

class apscheduler.triggers.date.DateTrigger(run_date=None, timezone=None)

Bases: BaseTrigger

Triggers once on the given datetime. If run_date is left empty, current time is used.

Parameters:
  • run_date (datetime|str) – the date/time to run the job at

  • timezone (datetime.tzinfo|str) – time zone for run_date if it doesn’t have one already

get_next_fire_time(previous_fire_time, now)

Returns the next datetime to fire on, If no such datetime can be calculated, returns None.

Parameters:

Introduction

This is the simplest possible method of scheduling a job. It schedules a job to be executed once at the specified time. It is APScheduler’s equivalent to the UNIX “at” command.

The run_date can be given either as a date/datetime object or text (in the ISO 8601 format).

Examples

from datetime import date

from apscheduler.schedulers.blocking import BlockingScheduler


sched = BlockingScheduler()

def my_job(text):
    print(text)

# The job will be executed on November 6th, 2009
sched.add_job(my_job, 'date', run_date=date(2009, 11, 6), args=['text'])

sched.start()

You can specify the exact time when the job should be run:

# The job will be executed on November 6th, 2009 at 16:30:05
sched.add_job(my_job, 'date', run_date=datetime(2009, 11, 6, 16, 30, 5), args=['text'])

The run date can be given as text too:

sched.add_job(my_job, 'date', run_date='2009-11-06 16:30:05', args=['text'])

To add a job to be run immediately:

# The 'date' trigger and datetime.now() as run_date are implicit
sched.add_job(my_job, args=['text'])