Developer & Chat Tool

Slack Permalink Timestamp Decoder & Formatter

Paste a Slack permalink like .../archives/C123/p1234567890123456 and get the real date and time back — or build the dynamic <!date^...> markup Slack renders in each reader's own timezone.

Decoder

Decode a permalink, p-number, or ts value

Works with a full permalink URL, the bare p1234567890123456 string, or Slack's own 1234567890.123456 ts format.

Also accepts just p1234567890123456 or 1234567890.123456.

Paste a permalink, p-number, or ts to decode it

What p1234567890123456 actually means

Every Slack message has a ts (timestamp) value in the format 1234567890.123456 — Unix seconds, a decimal point, then six digits of microseconds. Slack adds the microseconds so two messages posted in the same second still get a unique ID. When Slack builds a permalink for that message (whether you click "Copy link" or call the chat.getPermalink API), it takes that same ts, strips out the decimal point, and appends it to the URL after a lowercase p: p1234567890123456. So the permalink isn't a different kind of timestamp — it's the identical ts value your code already works with, just written without the dot. The decoder above reverses that: paste in the p-string and it puts the decimal point back, giving you the ts Slack's API expects and the human date it corresponds to.

Want the full breakdown — the API's chat.getPermalink method, thread replies, and code snippets in JS and Python? Read Slack Permalink Timestamp Format Explained. Building the same idea for Discord instead? See the Discord Timestamp Generator.

Composer

Build a dynamic timestamp to paste into Slack

Slack can render a date or time that automatically shows in each teammate's own timezone — build the markup below and paste it into any message.

Pick a date and time

How the dynamic markup works

Slack supports a message syntax, <!date^UNIX_TIMESTAMP^{format_tokens}|fallback text>, where the format tokens control which parts of the date and time are shown. Slack renders this locally for each person reading the message, converting it to their own timezone automatically — and the fallback text after the pipe is shown to anyone using a client that doesn't support the dynamic format (like some bots or integrations).

Reference

Common questions

Related

Related tools