Article content and detailed guides remain in English. The selected language applies to controls and quick instructions.

Back to articles

Spreadsheet Date and Time Formulas for Email List Management: Calculating Send Windows, Timezone Conversion, Consent Expiry, Engagement Recency and Campaign Scheduling

On this page

Why Date and Time Formulas Matter for Email

Email list management depends on dates: when someone subscribed, when they last engaged, when consent expires, when to send across timezones and when to sunset inactive contacts. Spreadsheets handle these calculations natively, and the right formulas automate decisions that would otherwise require manual review:

Use case Date calculation Business impact
Engagement recency Days since last open/click Identify active vs inactive contacts for segmentation
Consent expiry (CASL) Months since implied consent started Legal compliance; prevent sending to expired consent
Subscription age Days/months since signup New subscriber nurture vs long-term engagement
List hygiene timing Days since last verification Schedule re-verification before list quality degrades
Campaign scheduling Timezone-adjusted send times Deliver at optimal local time for global lists
Sunset policy Days since last engagement Automated sunset decisions based on policy thresholds
Re-engagement timing Days since last activity Trigger re-engagement campaigns at the right moment

Essential Date Formulas

Calculating days since an event

Calculate how many days have passed since a subscriber's last action. Assume column A contains the event date and today's date is the reference:

Formula What it does Example
=TODAY()-A2 Days since event date If A2 is 2026-07-15 and today is 2026-10-10, result is 87
=DATEDIF(A2,TODAY(),"D") Days between two dates Same as above; works in both Excel and Google Sheets
=DATEDIF(A2,TODAY(),"M") Complete months between dates Result: 2 (complete months)
=DATEDIF(A2,TODAY(),"Y") Complete years between dates Useful for anniversary calculations

Engagement recency scoring

Assign engagement scores based on recency. Assume column B contains the last engagement date:

Formula What it does Segments
=IF(TODAY()-B2<=30,"Active",IF(TODAY()-B2<=90,"Warm",IF(TODAY()-B2<=180,"Cool","Cold"))) Four-tier recency score Active (0-30 days), Warm (31-90), Cool (91-180), Cold (181+)
=IF(TODAY()-B2<=30,4,IF(TODAY()-B2<=90,3,IF(TODAY()-B2<=180,2,1))) Numeric recency score (1-4) 4 = most recent; 1 = least recent; use in scoring models
=IF(B2="",0,MAX(0,100-((TODAY()-B2)/3))) Decay score (0-100) Linear decay: loses ~0.33 points per day; 0 after 300 days

Consent expiry tracking (CASL implied consent)

CASL implied consent expires after specific periods. Assume column C contains the date implied consent was established:

Formula What it does CASL application
=EDATE(C2,24) Date 24 months after consent date CASL implied consent expiry for existing business relationship
=EDATE(C2,6) Date 6 months after consent date CASL implied consent expiry for inquiry
=IF(TODAY()>EDATE(C2,24),"EXPIRED","VALID") Check if implied consent has expired Flag expired consent for removal or re-consent campaign
=EDATE(C2,24)-TODAY() Days until consent expires Trigger re-consent campaign before expiry
=IF(EDATE(C2,24)-TODAY()<=30,"RE-CONSENT NOW",IF(EDATE(C2,24)-TODAY()<=60,"RE-CONSENT SOON","VALID")) Re-consent urgency Prioritise re-consent outreach by urgency

Subscription age and lifecycle

Assume column D contains the subscription date:

Formula What it does Application
=DATEDIF(D2,TODAY(),"M") Months since subscription Lifecycle stage assignment
=IF(DATEDIF(D2,TODAY(),"M")<=1,"New",IF(DATEDIF(D2,TODAY(),"M")<=6,"Growing",IF(DATEDIF(D2,TODAY(),"M")<=24,"Established","Veteran"))) Lifecycle stage label Content and frequency customisation by tenure
=YEAR(D2)&"-Q"&ROUNDUP(MONTH(D2)/3,0) Subscription cohort (Year-Quarter) Cohort analysis for retention and engagement trends

Sunset policy automation

Assume column B has last engagement date and column D has subscription date:

Formula What it does Application
=IF(AND(TODAY()-B2>180,TODAY()-D2>90),"SUNSET","KEEP") Sunset if no engagement in 180 days AND subscribed 90+ days ago Protects new subscribers from premature sunset
=IF(TODAY()-B2>365,"REMOVE",IF(TODAY()-B2>180,"RE-ENGAGE",IF(TODAY()-B2>90,"MONITOR","ACTIVE"))) Four-stage sunset workflow Automates the sunset policy decision tree
=IF(TODAY()-B2>270,"FINAL WARNING",IF(TODAY()-B2>180,"RE-ENGAGE CAMPAIGN","ACTIVE")) Three-stage re-engagement trigger 180 days: start re-engagement; 270 days: final warning before removal

Timezone Calculations

Converting UTC to local time

Assume column E contains UTC datetime and column F contains timezone offset (e.g. -5 for EST, -8 for PST):

Formula What it does Application
=E2+(F2/24) UTC to local time conversion Display event time in subscriber's local timezone
=E2+(-5/24) UTC to Eastern Time (EST) Fixed timezone conversion
=E2+(-8/24) UTC to Pacific Time (PST) Fixed timezone conversion

Optimal send time calculation

Assume you want to send at 10:00 AM in each subscriber's local timezone. Column F contains their UTC offset:

Formula What it does Application
=TIME(10,0,0)-(F2/24) Calculate UTC send time for 10 AM local Schedule sends to arrive at 10 AM local for each timezone group
=IF(AND(HOUR(E2+(F2/24))>=9,HOUR(E2+(F2/24))<=17),"BUSINESS HOURS","OFF HOURS") Check if a UTC time falls within business hours locally Filter sends to business hours only

Day-of-week calculations

Formula What it does Application
=TEXT(A2,"dddd") Day name (Monday, Tuesday, etc.) Identify which day events occurred
=WEEKDAY(A2,2) Day number (1=Monday, 7=Sunday) Filter for weekday-only sends (result 1-5)
=IF(WEEKDAY(A2,2)<=5,"Weekday","Weekend") Weekday vs weekend label Segment sends by day type

List Hygiene Date Calculations

Verification scheduling

Assume column G contains the date each email was last verified:

Formula What it does Application
=IF(TODAY()-G2>90,"VERIFY NOW",IF(TODAY()-G2>60,"VERIFY SOON","CURRENT")) Verification urgency by recency Schedule re-verification before quality degrades
=EDATE(G2,3) Next verification due date (quarterly) Calendar scheduling for re-verification
=MAX(0,EDATE(G2,3)-TODAY()) Days until verification due Countdown for verification planning

Data freshness scoring

Formula What it does Application
=IF(TODAY()-G2<=30,100,IF(TODAY()-G2<=90,75,IF(TODAY()-G2<=180,50,IF(TODAY()-G2<=365,25,0)))) Data freshness score (0-100) Weighted scoring for list quality assessment
=AVERAGE(IF(TODAY()-G2:G1000<=90,1,0))*100 Percentage of list verified in last 90 days (array formula) Overall list quality metric

Preparing Date Data for Analysis

Before applying these formulas, all date fields must be in consistent formats. When consolidating subscriber data from multiple sources -- CRM exports (CSV), email platform exports (CSV), e-commerce platform exports (CSV), event registration systems (CSV) and web form submissions (CSV) -- each system may format dates differently (MM/DD/YYYY, YYYY-MM-DD, DD/MM/YYYY, epoch timestamps). Upload the source files to Email Extractor to extract and deduplicate email addresses across all sources before applying date-based formulas. Deduplication is especially important for date-based analysis because the same subscriber appearing in multiple systems with different "last engagement" dates produces conflicting recency scores, and you need one canonical record per email address with the most recent engagement date across all systems.

Extract emails

Explore tools

Verify emails

Check address validity before using your list.

ZeroBounce

Email Verification

Verifies email lists and provides tools for monitoring deliverability.

Useful when list cleaning and sender health belong in one workflow.

Explore ZeroBounce (opens in a new tab)