> For the complete documentation index, see [llms.txt](/llms.txt).

- Snap

# snap_scheduleBackgroundEvent

Schedule a background event for a Snap. The background event will trigger a JSON-RPC request to the Snap at the scheduled time, handled by the `onCronjob` entry point in the Snap.

The schedule can be defined using either an ISO 8601 date or duration string. For example:

- Using a date: `2026-12-31T23:59:59Z`
- Using a duration: `P1DT2H` (which represents a duration of 1 day and 2 hours)

## Parameters[​](#parameters "Direct link to Parameters")

union

An object containing the parameters for the `snap_scheduleBackgroundEvent`method.

### Options

object

required

### date

string

required

The ISO 8601 date string of when to fire the background event (e.g., `"2025-01-01T00:00:00Z"`).

or

object

required

### duration

string

required

The ISO 8601 duration string of how long to wait before firing the background event (e.g., `"P1D"` for one day). The resulting date will be calculated in UTC.

### Common properties

### request

object

required

The JSON-RPC request to call when the event fires.

### method

string

required

The method to call. This can be an arbitrary method, and is provided to the `onCronjob` handler for the Snap to determine how to handle the request.

### params

JsonRpcParams

The parameters to pass to the method. This can be used to provide additional information about the request, and is provided to the `onCronjob` handler for the Snap to determine how to handle the request.

## Returns[​](#returns "Direct link to Returns")

string

The ID of the scheduled background event.

## Example

```
const id = await wallet.request({
  method: 'snap_scheduleBackgroundEvent',
  params: {
    date: '2026-12-31T23:59:59Z',
    request: {
      method: 'mySnapMethod',
      params: { foo: 'bar' },
    },
  },
})

```
