Durations and time zones

How Arclo reads a length of time, how it writes one back, and whose clock a scheduled thing runs on.

On this page

Writing a duration

Anywhere a command asks for a length of time (a mute, a giveaway, a poll, a sticky message, a temporary role) it accepts the same shorthand. On the dashboard, lengths are picked with a number and a unit instead.

You typeArclo reads
30s30 seconds (most options start at a minute; /slowmode's interval takes seconds)
10m or 10 minutes10 minutes
2h2 hours
1h30m90 minutes
7d or 1w7 days
2mo or 1y60 days, or 365: a month is 30 days and a year 365
permanent, 0, or leaving it blankSee below
  • Units may be written short (m) or long (minutes), with or without a space. m is always minutes; months are mo.
  • Parts can be combined in any order: 1d 6h and 6h1d are the same 30 hours.
  • Something unreadable is rejected with a message rather than guessed at.
  • The giveaway, moderation, poll and sticky message commands suggest durations as you type: enter 7 and pick 7 minutes, hours, days, weeks or months, whichever that option allows. Where it applies they also offer Off, Permanent or Forever.
  • Months and years are read by those same commands. /reminder stops at weeks.

Always write the unit

A bare number means different things in different places: minutes in the giveaway and poll commands, seconds in /slowmode's interval, a time of day in /reminder (5 is 05:00), and in moderation and sticky message durations it is refused. 30m means the same thing everywhere.

Blank and permanent are different

Leaving a duration out means use the default configured for this action. Explicitly saying permanent (or forever, never, 0) means never expire. Systems that offer both keep them distinct, so a command with no duration cannot accidentally become a permanent ban.

How Arclo writes one back

Durations are printed in the largest unit that says them exactly: seven days is 1 week (never 6 days 24 hours), and 36 hours stays 36 hours. A length that is not a whole number of any unit (an account's age, say) gets the two largest that fit, such as 2 years 3 months, because a third would be noise. Under a minute, seconds are the only honest answer.

Absolute times

Where a specific moment is wanted rather than a length, what you can type depends on the command:

  • `/reminder create`'s time, and Remind Me***: a length (10m, in 1h30m), today or tomorrow with an optional time, a weekday (monday 18:00 is the next Monday), a date (2026-12-01 09:00), or a clock time alone (5pm, 17:30: today if it is still ahead, otherwise tomorrow). A day with no time means 09:00. Clock times are read in your own zone, or the server's when you have none (see below), and the confirmation names the zone it used.
  • `end-time` on `/giveaway edit` and `/poll edit`: YYYY-MM-DD HH:mm, today 18:00, tomorrow 09:30, a Discord timestamp such as <t:1735689600:f>, or a unix timestamp in seconds or milliseconds. A typed date and time is read as UTC, so a Discord timestamp is the easy way to mean your own clock: Discord generates it in your time zone.
  • On the dashboard, a scheduled embed message or reminder is picked with a date, a time and a time zone, so there is nothing to type.

Whose time zone

Server default
General → Settings → Defaults → Default timezone starts empty, and empty means follow whoever is looking: every scheduling picker opens on the zone of the person using it. Set one only when you want analytics reports, ticket support hours, the slowmode manager, automation schedules and birthdays to start on one particular zone for everybody. It is also the zone a member's reminder times are read in until they set their own; with none, those are read in UTC. Detect my timezone fills in yours.
Per-configuration zones
Anything that runs on a clock stores its own zone: an automation's schedule, a scheduled analytics report, a ticket panel's support hours, a slowmode schedule, the Birthdays announcement time, a scheduled embed message or reminder. The server default only decides which zone those pickers start on; the zone saved with each one always wins.
Member zones
Only reminders typed in Discord read a member's own zone. A member sets it with /reminder timezone, or Arclo fills it in from the browser the first time they open this server's Reminders page on the dashboard. It is kept per server (listed on My Account → Your time zones). A member without one has clock times read in the server default above, or in UTC when there is none, and the confirmation says which. A relative time such as in 2h needs no zone at all. Birthdays do not use member zones: every birthday is announced at the time and in the zone set on the Birthdays page.

Daylight saving is handled by the zone, not by the offset

Schedules store a named zone (Europe/London), not an offset, so a rule set for 09:00 stays at 09:00 through the clock change.

Still stuck? Ask in the support server: somebody there has almost certainly configured this before.