> For the complete documentation index, see [llms.txt](https://enchantedmobs.superiormc.cn/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://enchantedmobs.superiormc.cn/for-ultimatequest/configuration/periods.md).

# Periodic Assignments

Periodic tasks are assigned automatically and refreshed on a schedule. Use them for daily, weekly, monthly, or custom assignments. Players view their tasks and claim rewards through `/uq period`; they do not need to accept each task manually.

## Creating periodic tasks

`periods/<id>.yml` defines automatic assignments from a pool. Each selected objective becomes a separate task; `task` supplies categories, settings, and per-task rewards.

```yaml
enabled: true
name: '{lang:defaults.periods.daily.name}'
reset-mode: CRON
reset-time: 0 0 0 * * ?
claim-grace-seconds: 3600
source:
  pool: daily
  count: 3
task:
  auto-claim: false
  description:
  - '{lang:defaults.periods.daily.description}'
  - '{lang:defaults.periods.reward-note}'
  - '{lang:defaults.periods.claim-note}'
  rewards:
    supply:
      type: random
      pool: period_daily
      count: 3
      repeat: false
      display:
        name: '{lang:defaults.periods.daily-pack}'
```

Progress stops at cycle end. Completed tasks remain claimable for `claim-grace-seconds`; grace does not extend progress collection. Generation checks the whole batch against limits. Insufficient capacity retains existing tasks and retries later with the fixed selection.

## Reset formats

Reset calculations use the server JVM system time zone; battle-pass rotation shares this parser.

| Mode     | `reset-time`                                                                                             |
| -------- | -------------------------------------------------------------------------------------------------------- |
| `CRON`   | Quartz cron including seconds: daily `'0 0 0 * * ?'`, weekly `'0 0 0 ? * MON'`, monthly `'0 0 0 1 * ?'`. |
| `TIMED`  | Local times separated by `;;`, e.g. `'00:00:00;;12:00:00'`.                                              |
| `TIMER`  | Positive interval `[days:]hours:minutes:seconds`, e.g. `'1:00:00:00'`.                                   |
| `CUSTOM` | Local end datetime `yyyy-MM-dd HH:mm:ss`; `reset-anchor` is the start.                                   |

`reset-anchor` defaults to `'1970-01-01 00:00:00'`. Optional `starts-at`/`ends-at` use ISO-8601 instants and bound activity; these differ from local reset datetimes. `paused: true` pauses the profile. See [limits](/for-ultimatequest/features/task-limits.md).

A period may also use a single inline source.trigger/source.amount or source.quest template reference instead of a pool. It then generates one assignment per cycle.
