Skip to main content

Creating a Calendar Schedule

Calendar Scheduling Guide

Calendar scheduling creates time-based recurring delivery requests based on configured rules. This guide explains how to set up, manage, and use calendar schedules within the system dialog.


What is calendar scheduling?

Calendar scheduling automatically generates delivery requests based on:

  • Recurring frequency: How often deliveries occur (days, weeks, months, years)
  • Preferred day of week: Optional constraint (Monday–Sunday or any day)
  • Seasonal dates: Start and end dates for seasonal schedules
  • Requested volume: Specific gallon amount per delivery (optional)
  • Active status: Only one schedule can be active at a time

Calendar schedules are configured in the Calendar Schedules tab of the Add/Edit System dialog.


When to use calendar scheduling

Use calendar scheduling for:

  • Commercial accounts with predictable usage patterns
  • Regular delivery schedules (e.g., every 2 weeks, monthly)
  • Seasonal deliveries (e.g., heating season only: October–April)
  • Fixed-volume deliveries (e.g., always deliver 200 gallons)
  • Customers preferring consistent schedules over automatic keep-full

Accessing calendar schedules

Calendar schedules are managed in the System dialog:

  1. Navigate to Systems from the Customer Dashboard
  2. Click Add System (for new) or Edit on an existing system
  3. Select the Calendar Schedules tab
  4. You'll see an info message: "Calendar schedules automatically create delivery requests based on recurring rules. Only one schedule can be active at a time."

Important: For new systems, you must save the system first before you can add calendar schedules. You'll see a warning: "Save the system before managing calendar schedules."


Creating a calendar schedule

Step 1: Click "Add Schedule"

After saving the system, click the Add Schedule button to open the schedule form.

Step 2: Configure frequency

The form has three frequency fields in the first row:

Frequency (number)

  • Numeric value (minimum 1, step 1)
  • Example: 2 for "every 2 [units]"

Units (dropdown)

  • Days
  • Weeks
  • Months
  • Years

Preferred Day of Week (dropdown, optional)

  • Monday through Sunday
  • Or leave blank/clear for "Any day"
  • Placeholder shows "Any day" when not selected

Example combinations:

  • Frequency: 2, Units: Weeks, Day: Tuesday = "Every 2 weeks on Tuesday"
  • Frequency: 1, Units: Months, Day: (Any) = "Every month on any day"
  • Frequency: 14, Units: Days, Day: (Any) = "Every 14 days"

Step 3: Set seasonal dates (optional)

Season Starts and Season Ends

  • Date pickers with icon and button bar
  • Both are optional
  • Use to limit schedule to specific time periods (e.g., heating season)
  • Leave blank for year-round schedules

Example:

  • Season Starts: October 1
  • Season Ends: April 30
  • Schedule only generates deliveries during this window

Step 4: Set delivery volume (optional)

Requested Volume (gal)

  • Numeric field (minimum 0)
  • Specify gallons to request per delivery
  • Leave at 0 or blank for automatic calculation

Step 5: Set active status

Active toggle

  • For new schedules: Label shows "Activate after saving"
  • For existing schedules: Label shows "Active"
  • Toggle on to make this schedule the active one
  • Important: Only one schedule can be active at a time; activating a new schedule deactivates others

Step 6: Save the schedule

Click Create Schedule (or Update Schedule if editing).

The schedule will appear in the list below with:

  • Frequency description (e.g., "Every 2 weeks")
  • Active/Inactive badge (green for active, gray for inactive)
  • Season, day of week, and requested volume details

Managing existing schedules

Each schedule in the list displays:

Header:

  • Frequency: Human-readable format (e.g., "Every 2 weeks", "Every month")
  • Status badge: Active (green) or Inactive (gray)

Details:

  • Season: Date range or "No seasonal restrictions"
  • Day of week: Specific day or "Any day"
  • Requested volume: "XXX gal" or "Not specified"

Action buttons:

  • Set Active (green checkmark icon)

    • Makes this schedule the active one
    • Automatically deactivates other schedules
    • Disabled if already active or if another action is in flight
  • Deactivate (pause icon, outlined)

    • Pauses the schedule without deleting it
    • Disabled if already inactive or if another action is in flight
  • Edit (pencil icon)

    • Opens the schedule in edit mode
    • Same form as creating, with existing values populated
    • Click "Update Schedule" to save changes
  • Delete (trash icon, text style, danger color)

    • Removes the schedule permanently
    • Typically shows a confirmation dialog

Schedule states and rules

Only one active schedule

The system enforces that only one calendar schedule can be active at a time per system:

  • Setting a schedule to Active automatically deactivates all others
  • You can have multiple inactive schedules saved for future use or seasonal switching

Inactive schedules

Inactive schedules:

  • Are saved but do not generate delivery requests
  • Can be activated later
  • Useful for seasonal switching (e.g., winter schedule vs. summer schedule)

Loading and error states

  • Loading: Shows spinner with "Loading schedules…" message
  • No schedules: Shows info message "No calendar schedules have been created yet."
  • Error: Shows error message with details if schedules fail to load

Example configurations

Example 1: Biweekly residential delivery

Configuration:

  • Frequency: 2
  • Units: Weeks
  • Preferred Day: Tuesday
  • Season Starts: (blank)
  • Season Ends: (blank)
  • Requested Volume: 200
  • Active: Yes

Result: Delivers 200 gallons every 2 weeks on Tuesday, year-round

Example 2: Monthly commercial fill

Configuration:

  • Frequency: 1
  • Units: Months
  • Preferred Day: (Any day)
  • Season Starts: (blank)
  • Season Ends: (blank)
  • Requested Volume: 0 (automatic)
  • Active: Yes

Result: Monthly delivery on any day with automatic volume calculation

Example 3: Seasonal heating oil

Configuration:

  • Frequency: 3
  • Units: Weeks
  • Preferred Day: (Any day)
  • Season Starts: October 1
  • Season Ends: April 30
  • Requested Volume: 0
  • Active: Yes

Result: Delivery every 3 weeks during heating season only (Oct 1 – Apr 30)


Editing a schedule

  1. Click Edit on the schedule you want to modify
  2. The schedule form appears with current values populated
  3. Make your changes
  4. Click Update Schedule to save
  5. The schedule list updates with the new configuration

You can change any field: frequency, units, day of week, seasonal dates, volume, or active status.


Switching between schedules

To switch from one schedule to another (e.g., winter to summer):

  1. Create both schedules with appropriate settings
  2. Set one as Active (this becomes the current schedule)
  3. When the season changes, click Set Active on the other schedule
  4. The system automatically deactivates the previous schedule and activates the new one

Example:

  • Winter schedule: Every 2 weeks, Oct 1 – Apr 30, Active
  • Summer schedule: Every 6 weeks, May 1 – Sep 30, Inactive
  • In May, click Set Active on the summer schedule

Deleting a schedule

Click Delete on a schedule to remove it permanently. This action typically requires confirmation and cannot be undone.

Caution: Deleting an active schedule stops automatic delivery generation. Ensure you have another schedule activated or switch the system to a different window strategy.


Calendar schedules and window strategies

Calendar scheduling is selected as a Window Strategy at the system level:

  1. In the system dialog, set Window Strategy to Calendar
  2. Enable Auto Delivery toggle if you want automatic delivery request generation
  3. Configure your calendar schedule(s) in the Calendar Schedules tab

With Auto Delivery enabled and an active calendar schedule, the system will automatically generate delivery requests based on the configured frequency and rules.

See: Window Strategies


Combining calendar with other data

Calendar + Monitor validation

If the system also has a tank monitor:

  • The calendar schedule generates requests on schedule
  • Monitor data can be used to validate or skip deliveries if the tank is still sufficiently full
  • This prevents unnecessary deliveries while maintaining a predictable schedule

Calendar + Degree Day cross-check

If degree day settings are also configured:

  • Calendar provides the schedule cadence
  • Degree day projections can validate whether the delivery is needed
  • Helps refine the calendar frequency over time

Troubleshooting

Cannot add schedules

Issue: "Save the system before managing calendar schedules" warning appears Solution: Click Submit on the system dialog to save the system first, then edit it again to add schedules

Schedule not generating deliveries

Issue: Schedule is created but deliveries aren't happening Check:

  • Is the schedule set to Active? (green badge)
  • Is Auto Delivery toggle enabled on the system?
  • Is the current date within the seasonal date range (if specified)?
  • Is Window Strategy set to Calendar?

Wrong delivery frequency

Issue: Deliveries happening too often or too infrequently Solution: Edit the schedule and adjust Frequency/Units to match desired cadence

All schedules become inactive

Issue: Activating a schedule deactivates all others Expected behavior: This is by design. Only one schedule can be active at a time.


  • Window Strategies — Select Calendar as window strategy and enable Auto Delivery
  • Add System — Create the system before adding calendar schedules
  • Monitoring — Use monitor validation with calendar schedules
  • Degree Day System — Cross-check calendar with degree day projections