# Scheduling & Time Slots (/docs/activities/scheduling)



Scheduling determines when customers can book your activities. Resytech supports flexible scheduling with timezone-aware availability. The scheduling configuration has two independent dimensions: **dates** (which days the activity is available) and **times** (which times are offered on those days).

Date Configuration [#date-configuration]

Choose one of four date modes to control which days the activity is bookable.

Date Range [#date-range]

The activity is available on any day between a start date and end date.

| Setting       | Description                          |
| ------------- | ------------------------------------ |
| **First Day** | The earliest date customers can book |
| **Last Day**  | The latest date customers can book   |

Use this for seasonal activities with a defined operating window (e.g., June 1 through September 30).

Specific Dates [#specific-dates]

The activity is only available on individually selected dates. Use the calendar picker to add or remove dates one at a time. This is ideal for activities that run on irregular schedules, such as monthly workshops or occasional special tours.

Repeating Days [#repeating-days]

The activity is available on selected days of the week within a date range. Configure:

| Setting          | Description                                                   |
| ---------------- | ------------------------------------------------------------- |
| **Days of Week** | Select which days (Sunday through Saturday) the activity runs |
| **First Day**    | Start date for the repeating schedule                         |
| **Last Day**     | End date for the repeating schedule                           |

This is the most common mode for regular operations. For example, set Monday through Friday for a date range to create weekday-only availability.

Year Round [#year-round]

The activity is available every day of the year with no end date. Use [blackout dates](#blackout-dates) to block holidays or maintenance days. This is the simplest option for activities that run continuously.

Time Configuration [#time-configuration]

Choose one of two time modes to control when time slots appear on each available day.

Time Slots [#time-slots]

Time slots are generated at regular intervals between a start and end time.

| Setting                | Description                                                          |
| ---------------------- | -------------------------------------------------------------------- |
| **Start Time**         | The first available booking time each day                            |
| **End Time**           | The last available booking time each day                             |
| **Interval (minutes)** | How often a new slot starts (e.g., 30 = a new slot every 30 minutes) |

For example, setting 9:00 AM to 5:00 PM with a 60-minute interval generates slots at 9:00, 10:00, 11:00, and so on.

Daily Overrides [#daily-overrides]

Override the generated time slots for specific days of the week. For example, you might use a 30-minute interval on weekdays but switch to a 60-minute interval on Saturdays. Each override provides a custom list of time slots that replace the automatically generated ones for that day.

Specific Times [#specific-times]

Instead of generating slots at intervals, you list the exact times the activity runs. Each time entry can optionally be restricted to a specific date, which lets you have different departure times on different days.

| Property       | Description                                                                                         |
| -------------- | --------------------------------------------------------------------------------------------------- |
| **Time**       | The start time for this session                                                                     |
| **Applies To** | (Optional) A specific date this time applies to. If blank, the time applies to all available dates. |

Durations [#durations]

Durations define how long each session of the activity lasts. You can configure multiple duration options so customers can choose (e.g., 1-hour rental or 2-hour rental).

| Property    | Description                                                                                                                     |
| ----------- | ------------------------------------------------------------------------------------------------------------------------------- |
| **Minutes** | Length of the session in minutes                                                                                                |
| **Buffer**  | Minutes of gap time after the session ends before the next slot can be booked. Use this for cleanup, reset, or transition time. |
| **Price**   | The price for this specific duration option                                                                                     |
| **Active**  | Whether this duration option is currently available for booking                                                                 |

For **Tour** type activities, you typically configure a single duration. For **Equipment Rental** type activities, you typically offer multiple duration choices.

Dynamic Duration [#dynamic-duration]

For activities with type **Dynamic Duration Equipment Rental**, duration is configured differently. Instead of predefined options, customers choose a custom rental length within a range.

| Setting                 | Description                                                                        |
| ----------------------- | ---------------------------------------------------------------------------------- |
| **Enabled**             | Toggle dynamic duration on or off                                                  |
| **Minimum Hours**       | The shortest rental period allowed                                                 |
| **Maximum Hours**       | The longest rental period allowed                                                  |
| **Increment (minutes)** | The step size for duration selection (e.g., 60 for whole hours, 30 for half-hours) |
| **Base Hourly Rate**    | The per-hour price before any modifiers are applied                                |

Booking Cutoffs [#booking-cutoffs]

Cutoffs prevent last-minute bookings and limit how far in advance customers can book.

| Setting                  | Description                                                                                                      |
| ------------------------ | ---------------------------------------------------------------------------------------------------------------- |
| **Early Cutoff Value**   | How close to the start time a booking can be made                                                                |
| **Early Cutoff Type**    | The unit for the cutoff: **Minutes**, **Hours**, or **Days**                                                     |
| **Future Cutoff (Days)** | Maximum number of days into the future customers can book. Limits how far ahead the calendar shows availability. |

For example, setting an early cutoff of 2 hours means customers cannot book a 3:00 PM slot after 1:00 PM. Setting a future cutoff of 90 days means only the next 3 months of availability are shown.

Blackout Dates [#blackout-dates]

Block specific date ranges when the activity will not run.

| Property        | Description                                               |
| --------------- | --------------------------------------------------------- |
| **Date Range**  | The start and end date of the blackout period             |
| **Is All Day**  | Whether the entire day is blocked, or only specific hours |
| **Start Time**  | (If not all day) The start of the blocked window          |
| **End Time**    | (If not all day) The end of the blocked window            |
| **Description** | An internal note explaining why this date is blocked      |

Blackout dates override all other scheduling. When a blackout covers an entire day, no time slots are available. Partial-day blackouts remove only the affected time slots.

Special Events [#special-events]

Special events let you create one-off sessions on specific dates with custom times and durations, outside the normal schedule.

| Property     | Description                                    |
| ------------ | ---------------------------------------------- |
| **Date**     | The date of the special event                  |
| **Times**    | One or more specific start times for the event |
| **Duration** | Which duration option applies to this event    |

Use special events for holiday schedules, promotional sessions, or seasonal one-offs without modifying the regular schedule.

Scheduling Script [#scheduling-script]

For advanced scheduling scenarios, a JSON-based scheduling script can be attached to an activity. This is an advanced feature for programmatic schedule generation.

Capacity Per Slot [#capacity-per-slot]

Each time slot has a capacity limit defined by the activity's [manifest](/docs/activities/creating-activities#activity-manifest-capacity). When a slot reaches capacity, it is no longer available for booking. The calendar shows:

* **Available** — open slots remaining
* **Limited** — few slots left
* **Full** — no availability

Timezone Handling [#timezone-handling]

All scheduling respects your location's timezone setting. Resytech handles daylight saving time transitions automatically, so time slots remain consistent for your customers even during DST changes.

Related How-To Guides [#related-how-to-guides]

* [Configure Scheduling](/how-to/activities/configure-scheduling)
* [Configure Dynamic Duration](/how-to/activities/configure-dynamic-duration)
* [Create Special Events](/how-to/activities/create-special-events)
* [Publish / Unpublish](/how-to/activities/publish-unpublish)
