Back to blog
how-to macros date time

Date & Time Macros: Dynamic Snippets That Stay Current

Insert today's date, calculated deadlines, timestamps, and more with TypeSnap's date and time macros.

By Aaron Hampton 4 min read

Static text is useful. Dynamic text is powerful. TypeSnap macros let you insert dates, times, and other values that change every time a snippet expands.

All macros use double-brace syntax: {{macro}}.

Basic Date and Time

The simplest macros give you the current date or time:

Macro Output
{{date}} January 15, 2026
{{time}} 2:30 PM
{{now}} January 15, 2026 at 2:30 PM
{{today}} January 15, 2026
{{tomorrow}} January 16, 2026
{{yesterday}} January 14, 2026

Example: Daily Standup

Abbreviation: ;standup

## Standup — {{date:EEEE, MMMM d}}

**Yesterday:**
- {{cursor}}

**Today:**
-

**Blockers:**
- None

Type ;standup and you get a standup template with today’s day and date filled in, with your cursor positioned right where you need to start typing.

Custom Date Formats

Add a format string after the colon to control how dates appear:

Macro Output
{{date:yyyy-MM-dd}} 2026-01-15
{{date:MM/dd/yyyy}} 01/15/2026
{{date:MMMM d, yyyy}} January 15, 2026
{{date:EEEE}} Wednesday
{{date:MMM d}} Jan 15
{{date:yyyy}} 2026

Format Codes Reference

Code Meaning Example
yyyy 4-digit year 2026
yy 2-digit year 26
MMMM Full month name January
MMM Short month name Jan
MM Month number (padded) 01
M Month number 1
dd Day (padded) 05
d Day 5
EEEE Full weekday Wednesday
EEE Short weekday Wed
HH Hour, 24-hour (padded) 14
hh Hour, 12-hour (padded) 02
h Hour, 12-hour 2
mm Minutes 30
ss Seconds 45
a AM/PM PM

Custom Time Formats

{{time:HH:mm}}        → 14:30
{{time:h:mm a}}        → 2:30 PM
{{time:HH:mm:ss}}      → 14:30:45

Date Offsets

Need a date in the future or past? Add an offset:

Macro Meaning
{{date+7d}} 7 days from now
{{date-3d}} 3 days ago
{{date+1w}} 1 week from now
{{date-2w}} 2 weeks ago
{{date+1m}} 1 month from now
{{date+1y}} 1 year from now
{{date+2H}} 2 hours from now
{{date+30M}} 30 minutes from now

Combine offsets with formats:

{{date+7d:MMMM d, yyyy}}     → January 22, 2026
{{date+1m:MM/dd/yyyy}}        → 02/15/2026
{{date-1y:yyyy}}               → 2025

Example: Invoice with Due Date

Abbreviation: ;invoice

INVOICE
Date: {{date:MMMM d, yyyy}}
Due:  {{date+30d:MMMM d, yyyy}}

Bill To:
{{input:Client Name}}

Amount: ${{input:Amount}}

Payment is due within 30 days. Thank you for your business.

This creates an invoice with today’s date and a due date automatically set 30 days out.

Example: Meeting Follow-up

Abbreviation: ;followup

Hi {{input:Name}},

Thanks for meeting today ({{date:EEEE, MMMM d}}). As discussed, I'll have the deliverables ready by {{date+5d:EEEE, MMMM d}}.

Let me know if you have any questions.

Best,
{{snippet:;sig}}

This uses a date offset for the deadline and nests your signature snippet.

Other Dynamic Macros

Beyond dates, TypeSnap has several other macros that insert dynamic content.

Clipboard

{{clipboard}} pastes whatever is currently on your clipboard.

Abbreviation: ;link

<a href="{{clipboard}}">{{cursor}}</a>

Copy a URL, type ;link, and you get an HTML link with the URL filled in and your cursor positioned to type the link text.

Cursor Positioning

{{cursor}} places your cursor at that position after expansion.

Abbreviation: ;todo

- [ ] {{cursor}}

Type ;todo and your cursor lands right after the checkbox, ready to type the task.

Random Numbers

{{random}} generates a random number. You can specify a range:

Macro Output
{{random}} 0–100
{{random:6}} 0–6
{{random:1-100}} 1–100
{{random:100-999}} 100–999

UUID

{{uuid}} generates a unique identifier:

{{uuid}}  →  550e8400-e29b-41d4-a716-446655440000

Useful for developers who need unique IDs in test data or configuration files.

Nested Snippets

{{snippet:abbreviation}} expands another snippet inline:

Abbreviation: ;sig Content: Aaron Hampton, Senior Developer

Abbreviation: ;reply Content:

Hi {{input:Name}},

{{cursor}}

Best regards,
{{snippet:;sig}}

The ;reply snippet pulls in your signature automatically. Change your signature in one place and every snippet that references it stays up to date.

Key Simulation

{{key:...}} simulates pressing a key:

Macro Key
{{key:tab}} Tab
{{key:return}} Return/Enter
{{key:enter}} Return/Enter (alias)
{{key:escape}} Escape
{{key:backspace}} Backspace
{{key:delete}} Delete (forward)
{{key:space}} Space
{{key:up}} Up Arrow
{{key:down}} Down Arrow
{{key:left}} Left Arrow
{{key:right}} Right Arrow

Useful for filling in forms:

Abbreviation: ;addr

123 Main Street{{key:tab}}Apt 4B{{key:tab}}Springfield{{key:tab}}IL{{key:tab}}62704

This fills in an address form, tabbing between fields automatically.

Combining Macros

Macros can be mixed freely in any snippet:

Abbreviation: ;log

[{{date:yyyy-MM-dd}} {{time:HH:mm:ss}}] [{{select:INFO,WARN,ERROR}}] {{input:Message}}

This prompts you to pick a log level and type a message, then formats it with a timestamp.

Every macro works with every content type and trigger mode. Start with the simple ones — {{date}} and {{clipboard}} — and build up from there as you need them.

Stop typing the same things over and over

TypeSnap expands your snippets instantly. One-time purchase, no subscription.

Coming Soon · $17.99

Coming soon to Mac App Store

TypeSnap is launching soon. Be the first to know when it's available.

$17.99 — One-time purchase
Sandboxed Mac App No data collection Made by an indie developer