Dynamic month/year in email subject

Hi,

I would like to insert a dynamic date format that reflects the current month and year when the email is sent. For example, if the email is sent today, I’d like the subject line to include “October 2025.”

Is this possible?

Thanks so much for your help!

Have a great day,
Audrey

Hey @Audrey_Adomik
This can get a bit tricky with time zones - it depends on whether you’re operating across multiple ones and how precise you want it to be. That said, it’s pretty straightforward to set up.

You can create a custom contact property (Today’s Date) and then build a scheduled workflow that updates it each day as soon as the new day starts. Just have the property update to the date the action runs - and voilà, you’ve got a dynamic “today’s date” contact property.
You can then use this property as a personalisation token in your emails, and it’ll display the current date. I’d also recommend creating a second workflow with the trigger “Record ID is known.” This will capture any new contacts added after the daily schedule has already run. It can be identical to the first workflow, just without the schedule.

Always make sure to test and preview everything before sending!
Hope that helps!

Hey, @Audrey_Adomik :waving_hand: Welcome to our community! I don’t see a direct way to do this, but here’s something to test out:

Talk soon! — Jaycee

Hi @Audrey_Adomik,

You should be able to get this to work with HubSpot’s markup language HubL: HubL variables - HubSpot docs

With some help from gen AI, we get:

  • local_dt → returns the current date/time based on the portal’s timezone.
  • datetimeformat(‘%B %Y’) → formats the date as the full month name and four-digit year (e.g., “October 2025”).

… resulting in, for example:

Your Exclusive Offers for {{ local_dt|datetimeformat(‘%B %Y’) }}

This will not resolve directly in the subject line editor field but when you preview the email in the email editor. Make sure to test this on yourself before you use it on actual contacts.

Best regards!

Thanks a lot for your support!

I find a solution with a lot of calculation fields:

- “today’s date” working with a daily flow

- “month date” = number_to_string(month([properties.today_s_date]))

- “Month (string)” = if(([properties.month_date] == “1”), "January ", if(([properties.month_date] == “2”), "February ", if(([properties.month_date] == “3”), "March ", if(([properties.month_date] == “4”), "April ", if(([properties.month_date] == “5”), "May ", if(([properties.month_date] == “6”), "June ", if(([properties.month_date] == “7”), "July ", if(([properties.month_date] == “8”), "August ", if(([properties.month_date] == “9”), "September ", if(([properties.month_date] == “10”), "October ", if(([properties.month_date] == “11”), "November ", if(([properties.month_date] == “12”), "December ", “”))))))))))))

- “Year Date” = number_to_string(year([properties.today_s_date]))

- “Current Month Date” = concatenate([properties.month__string_], [properties.year_date])