{% extends "base.html" %} {% block title %}Schedules · LibreSignage{% endblock %} {% block content %} {% set selected_days = request.form.getlist("weekdays") if request.method == "POST" else (edit_schedule.weekday_numbers if edit_schedule else range(7)) %}

Schedules & dayparting

Assign playlists by date, weekday, local time, and priority.

Player Date rules Calendar

{{ "Edit schedule" if edit_schedule else "Create schedule" }}

{% set selected_group = request.form.get( "screen_group_id", edit_schedule.screen_group_id|string if edit_schedule and edit_schedule.screen_group_id else "" ) %} {% set selected_zone = request.form.get("layout_zone_id", edit_schedule.layout_zone_id|string if edit_schedule and edit_schedule.layout_zone_id else "") %}
Choose a layout zone only when no screen group is selected.
Leave both blank for all day. An end earlier than the start crosses midnight.
Days of week
{% for day_number, day_name in weekday_names %}
{% endfor %}
Higher priority wins when schedules overlap.
{% set enabled = request.form.get("enabled") == "on" if request.method == "POST" else (edit_schedule.enabled if edit_schedule else true) %}
{% if edit_schedule %} Cancel {% endif %}
{% if schedules %}
{% for schedule in schedules %}

{{ schedule.name }}

{% if schedule.id == active_schedule_id %} Active now {% elif not schedule.enabled %} Disabled {% endif %}
{{ schedule.playlist_name }} {{ schedule.screen_group_name or "All scheduled screens" }} · {{ schedule.timezone }} · {% if schedule.daily_start %} {{ schedule.daily_start }}–{{ schedule.daily_end }} {% else %} All day {% endif %} · Priority {{ schedule.priority }}
Edit
{% endfor %}
{% else %}

No schedules yet

Create a schedule to automate playlist selection.

{% endif %}
{% endblock %}