epochkit

Slack Timestamp Generator

Generate <!date^UNIX^TOKEN|fallback> syntax for Slack messages.
Custom tokens, preset formats, live preview.

Presets

Date + time
Slackbot Today at 12:00

Reminder: today at 2:00 AM

<!date^1778464819^{date_short_pretty} at {time}|May 11, 2026 at 02:00 UTC>
Long date + time
Slackbot Today at 12:00

Reminder: today at 2:00 AM

<!date^1778464819^{date_long_pretty} at {time}|May 11, 2026 at 02:00 UTC>
Date only
Slackbot Today at 12:00

Reminder: today

<!date^1778464819^{date_pretty}|May 11, 2026 at 02:00 UTC>
Time only
Slackbot Today at 12:00

Reminder: 2:00 AM

<!date^1778464819^{time}|May 11, 2026 at 02:00 UTC>
Time with seconds
Slackbot Today at 12:00

Reminder: 2:00:19 AM

<!date^1778464819^{time_secs}|May 11, 2026 at 02:00 UTC>
Full date + time
Slackbot Today at 12:00

Reminder: today at 2:00:19 AM

<!date^1778464819^{date_long_pretty} at {time_secs}|May 11, 2026 at 02:00 UTC>

Custom token

Custom token string
Slackbot Today at 12:00

Reminder: today at 2:00 AM

<!date^1778464819^{date_short_pretty} at {time}|May 11, 2026 at 02:00 UTC>

How to use

1

Set date, time, and timezone

Pick when the event happens. Slack converts the timestamp to each viewer's local timezone automatically.

2

Choose a preset or build a custom token

Click a preset card's copy button, or use the token buttons to build a custom format. Add a fallback for email and non-Slack clients. Smart tokens like {date_pretty} automatically render as "today" or "yesterday" when appropriate.

3

Paste into Slack

Paste the <!date^...> syntax directly into a Slack message or bot payload. Slack renders it as a clickable, timezone-aware date.

Token reference

Token Name
{date_num} Date (numeric)
{date} Date
{date_short} Date (short)
{date_long} Date (long)
{date_pretty} Date (smart)
{date_short_pretty} Short date (smart)
{date_long_pretty} Long date (smart)
{time} Time
{time_secs} Time with seconds
{ago} Relative

Smart tokens (date_pretty, date_short_pretty, date_long_pretty) render as "today", "yesterday", or "tomorrow" when applicable. All date tokens except date_num omit the year when the date is within ±6 months of now.

Slack date formatting explained

Slack's <!date^UNIX^TOKEN_STRING|FALLBACK> syntax embeds a Unix timestamp into a Slack message and renders it in each viewer's local timezone — just like Discord's <t:UNIX:F> syntax. The main difference is flexibility: Slack lets you compose a token string with multiple tokens, so you can write {date_short_pretty} at {time} to get "May 9, 2026 at 6:00 PM" in one unit.

The FALLBACK field matters more than it might seem. Slack sends email notifications and integrates with third-party tools that may strip the custom formatting. A good fallback includes the date, time, and timezone in plain text — for example, "May 9, 2026 at 18:00 UTC" — so recipients know exactly when something happens even without the rendered version.

Slack timestamps are especially useful for reminders, event invites, and release announcements where your team spans multiple timezones. Instead of writing "the meeting is at 3 PM EST," a Slack timestamp adapts to each person's local time automatically. For recurring schedules, combine Slack timestamps with Slack Reminders or a bot that sends messages via the Slack API.

Slack's smart tokens — date_pretty, date_short_pretty, and date_long_pretty — render as "today", "yesterday", or "tomorrow" when the timestamp falls on those days in the viewer's timezone. For all date tokens except date_num, Slack omits the year when the date is within roughly six months of now, keeping messages compact. Use date_num (e.g., 2026-05-09) when you need a stable, year-included ISO-style date for log lines or audit trails.

Frequently asked questions

How do Slack date formatting strings work?
Slack uses the <!date^UNIX^TOKEN_STRING|FALLBACK> syntax in messages. The UNIX value is a Unix timestamp in seconds, the TOKEN_STRING contains one or more tokens like {date_pretty} or {time}, and the FALLBACK is plain text shown when Slack cannot render the timestamp (e.g., in email notifications or API clients). Slack renders the timestamp in the viewer's local timezone automatically. A token like {date_pretty} may also render as "today" or "yesterday" depending on when the message is read.
Can I use multiple tokens in one date string?
Yes. You can combine tokens freely in the token string. For example, {date_short_pretty} at {time} renders as "May 9, 2026 at 6:00 PM" in the viewer's timezone. There is no documented limit on the number of tokens, but keep the string readable.
Do Slack timestamps work in direct messages?
Yes. Slack date formatting works in DMs, group messages, channels, and even message threads. It also works in bot messages. The one place it does not work is in message attachments' title fields and some legacy attachment fields — use the text or body of an attachment instead.
Can I use a Slack timestamp for a time in the past?
Yes. Slack timestamps accept any Unix timestamp — past, present, or future. A past timestamp will render as the formatted date, exactly as a future one would. There is no relative countdown for past times; use the relative format in Discord for that effect.
What is the fallback text and when does it appear?
The fallback text (the part after the pipe |) is shown when Slack cannot render the <!date^...> tag. This happens in email notifications, some third-party integrations, and older Slack API clients. A good fallback includes the date and timezone explicitly, for example: "May 9, 2026 at 18:00 UTC".
Why does {date_pretty} show "today" sometimes and an explicit date other times?
{date_pretty} is a smart token. Slack renders it as "today", "yesterday", or "tomorrow" if the timestamp falls on one of those days in the viewer's local timezone. Otherwise it shows the full date, e.g. "May 9th, 2026". The year is also omitted automatically when the date is within roughly six months of now. Use {date} if you always want the explicit date with no substitution.

Other tools you might find useful