Skip to main content
POST
/
v1
/
api
/
add_cron_schedule
curl -X POST "https://api.hookpulse.io/v1/api/add_cron_schedule/" \
  -H "x-hookpulse-api-key: {{x-hookpulse-api-key}}" \
  -H "x-brand-uuid: {{x-brand-uuid}}" \
  -H "Content-Type: application/json" \
  -d '{
    "cron_expression": "0 0 * * *",
    "cron_timezone": "Asia/Kolkata",
    "is_one_off_task": false,
    "schedule_to": "webhook",
    "model_to_schedule_uuid": "{{model_to_schedule_uuid}}",
    "initial_context_template": {
      "key": "value"
    }
  }'
{
  "success": true,
  "details": "Schedule added successfully"
}
Create a new cron-based schedule that executes a webhook or workflow using standard cron expressions with full timezone support.

Base URL

All API requests should be made to:
https://api.hookpulse.io

Example request

curl -X POST "https://api.hookpulse.io/v1/api/add_cron_schedule/" \
  -H "x-hookpulse-api-key: {{x-hookpulse-api-key}}" \
  -H "x-brand-uuid: {{x-brand-uuid}}" \
  -H "Content-Type: application/json" \
  -d '{
    "cron_expression": "0 0 * * *",
    "cron_timezone": "Asia/Kolkata",
    "is_one_off_task": false,
    "schedule_to": "webhook",
    "model_to_schedule_uuid": "{{model_to_schedule_uuid}}",
    "initial_context_template": {
      "key": "value"
    }
  }'

Request body

FieldTypeRequiredDescription
cron_expressionstringYesStandard cron expression (e.g., "0 0 * * *" for daily at midnight)
cron_timezonestringYesIANA timezone identifier (use Get Timezone Options to get valid values)
is_one_off_taskbooleanYesSet to true if the schedule should run only once, false for recurring execution
schedule_tostringYesTarget type: "webhook" or "workflow"
model_to_schedule_uuidstringYesUUID of the webhook or workflow template to schedule (as per schedule_to)
initial_context_templateobjectNoKey-value pairs passed as {{ initial.key }} variables to the webhook/workflow

Example response

{
  "success": true,
  "details": "Schedule added successfully"
}

Response fields

FieldTypeDescription
successbooleanIndicates if the schedule was created successfully
detailsstringSuccess message

Cron Expression Format

Cron expressions use the standard 5-field format:
* * * * *
│ │ │ │ │
│ │ │ │ └─── Day of week (0-7, where 0 and 7 are Sunday)
│ │ │ └───── Month (1-12)
│ │ └─────── Day of month (1-31)
│ └───────── Hour (0-23)
└─────────── Minute (0-59)

Common Cron Examples

ExpressionDescription
0 0 * * *Every day at midnight
0 9 * * 1-5Every weekday at 9 AM
0 */6 * * *Every 6 hours
0 0 1 * *First day of every month at midnight
0 0 1,15 * *1st and 15th of every month at midnight
0 9 * * 0Every Sunday at 9 AM
*/15 * * * *Every 15 minutes
0 0-23/2 * * *Every 2 hours

Timezone Support

HookPulse supports all 500+ IANA timezones. Use the Get Timezone Options endpoint to get the complete list. Common timezones:
  • America/New_York - Eastern Time
  • America/Chicago - Central Time
  • America/Los_Angeles - Pacific Time
  • Europe/London - GMT/BST
  • Asia/Kolkata - India Standard Time
  • UTC - Coordinated Universal Time

Initial Context Template

The initial_context_template object allows you to pass variables to your webhook or workflow that can be accessed using {{ initial.key }} syntax:
  • In request body: {{ initial.key }} will be replaced with the value
  • In headers: {{ initial.key }} can be used in header values
  • In query params: {{ initial.key }} can be used in query parameters
  • In path: {{ initial.key }} can be used in URL paths
You can also combine with:
  • System secrets: {{ #secret_key }} for vault secrets
  • Workflow step responses: {{ step.response.variable }} in workflows

Use Cases

  • Daily Reports: Generate reports every day at 9 AM
  • Weekly Maintenance: Run maintenance tasks every Sunday at 2 AM
  • Monthly Billing: Process billing on the 1st of every month
  • Business Hours: Execute during business hours only (with rules)
  • Complex Patterns: Create sophisticated scheduling patterns

Examples

Daily at 9 AM (Business Days) - Recurring

{
  "cron_expression": "0 9 * * 1-5",
  "cron_timezone": "America/New_York",
  "is_one_off_task": false,
  "schedule_to": "webhook",
  "model_to_schedule_uuid": "{{model_to_schedule_uuid}}"
}

Every Hour - Recurring

{
  "cron_expression": "0 * * * *",
  "cron_timezone": "UTC",
  "is_one_off_task": false,
  "schedule_to": "webhook",
  "model_to_schedule_uuid": "{{model_to_schedule_uuid}}"
}

Monthly on 1st and 15th - Recurring

{
  "cron_expression": "0 0 1,15 * *",
  "cron_timezone": "Asia/Kolkata",
  "is_one_off_task": false,
  "schedule_to": "workflow",
  "model_to_schedule_uuid": "{{model_to_schedule_uuid}}",
  "initial_context_template": {
    "billing_cycle": "bi-monthly"
  }
}

One-Time Execution at Specific Time

{
  "cron_expression": "0 9 1 1 *",
  "cron_timezone": "America/New_York",
  "is_one_off_task": true,
  "schedule_to": "webhook",
  "model_to_schedule_uuid": "{{model_to_schedule_uuid}}"
}

Authorizations

x-hookpulse-api-key
string
header
required

API key for authentication. Get this from your dashboard by selecting a brand and going to API Keys section.

x-brand-uuid
string
header
required

Brand UUID for authentication. Get this from your dashboard after adding a brand - it will be displayed in the UI.

Body

application/json

Cron schedule configuration

cron_expression
string
required

Standard cron expression (e.g., '0 0 * * *' for daily at midnight)

cron_timezone
string
required

IANA timezone identifier

schedule_to
enum<string>
required

Target type: 'webhook' or 'workflow'

Available options:
webhook,
workflow
model_to_schedule_uuid
string
required

UUID of the webhook or workflow template to schedule

initial_context_template
object

Key-value pairs passed as {{ initial.key }} variables to the webhook/workflow

Response

Schedule created successfully

success
boolean

Indicates if the schedule was created successfully

details
string

Success message