Skip to main content

Backup Schedules

Schedules automate your backups so they run reliably without manual intervention.

Creating a Schedule​

  1. Go to Schedules → New Schedule
  2. Fill in the schedule details:
    • Name — A descriptive label (e.g., postgres-prod-daily)
    • Agent — Which agent runs the backup
    • Database URL — Source database connection string
    • Storage Target — Where to store backups
    • Schedule — Cron expression or interval
    • Timezone — The timezone for cron evaluation
    • Retention — How long to keep backups
  3. Click Save Schedule

Schedule Types​

Cron Expression​

Use standard cron syntax to define complex schedules:

┌───────────── minute (0-59)
│ ┌─────────── hour (0-23)
│ │ ┌───────── day of month (1-31)
│ │ │ ┌─────── month (1-12)
│ │ │ │ ┌───── day of week (0-6, Sun=0)
│ │ │ │ │
* * * * *

Common Examples​

ExpressionMeaning
0 2 * * *Every day at 2:00 AM
0 */6 * * *Every 6 hours
0 2 * * 0Every Sunday at 2:00 AM
0 2 1 * *First day of every month at 2:00 AM
*/15 * * * *Every 15 minutes
0 2,14 * * *Twice daily at 2:00 AM and 2:00 PM
0 2 * * 1-5Weekdays at 2:00 AM

Interval​

Use a simple interval syntax:

every 30m # Every 30 minutes
every 6h # Every 6 hours
every 1d # Every day
every 1w # Every week

Timezone Configuration​

Cron expressions are evaluated in the schedule's configured timezone. Always specify a timezone explicitly to avoid DST surprises:

schedule:
cron: "0 2 * * *"
timezone: "Asia/Jakarta" # WIB (UTC+7)

Common timezones used by jokowipe.id customers:

RegionTimezone
US EastAmerica/New_York
US WestAmerica/Los_Angeles
UKEurope/London
GermanyEurope/Berlin
SingaporeAsia/Singapore
IndonesiaAsia/Jakarta
JapanAsia/Tokyo
Australia (Sydney)Australia/Sydney

Retention Policies​

Each schedule has a retention policy that determines how long backups are kept:

Count-Based​

retention:
keep_last: 30 # Keep the 30 most recent backups

Age-Based​

retention:
keep_days: 90 # Keep backups for 90 days
retention:
keep_last: 7 # Always keep at least 7 backups
keep_days: 30 # But no older than 30 days
Retention Strategy for Production

For production databases, we recommend:

  • Daily backups: keep for 30 days
  • Weekly backups: keep for 90 days
  • Monthly backups: keep for 1 year (archived to Glacier/Coldline)

Managing Schedules​

Enable / Disable​

Toggle a schedule on or off without deleting it. Useful for maintenance windows.

# Via API
curl -X PATCH https://api.jokowipe.id/v1/schedules/sch-a1b2c3 \
-H "Authorization: Bearer YOUR_API_KEY" \
-d '{"enabled": false}'

Pausing During Maintenance​

The dashboard shows a Maintenance Window option on each schedule. Set a time window during which the schedule is temporarily disabled.

Viewing Schedule History​

Go to Schedules → [Schedule Name] → History to see all runs for that schedule, with status, duration, and links to the full backup record.

Missed Backup Handling​

If a scheduled backup is missed (e.g., agent was offline), jokowipe.id can:

SettingBehavior
skip (default)Skip the missed run and wait for the next window
run_onceRun the missed backup once when the agent comes back online
alertSend an alert immediately when a scheduled window is missed

Configure this in the schedule settings under Missed Backup Handling.

Multiple Schedules per Database​

You can create multiple schedules targeting the same database — useful for tiered backup strategies:

postgres-prod-hourly: every 1h → S3 Standard (keep 24)
postgres-prod-daily: 0 2 * * * → S3 Standard-IA (keep 30d)
postgres-prod-weekly: 0 2 * * 0 → S3 Glacier (keep 1y)