fix: email digest showing incorrect upcoming events (#19552)

diff --git a/erpnext/setup/doctype/email_digest/email_digest.py b/erpnext/setup/doctype/email_digest/email_digest.py
index 1de5ccb..0bcddc2 100644
--- a/erpnext/setup/doctype/email_digest/email_digest.py
+++ b/erpnext/setup/doctype/email_digest/email_digest.py
@@ -4,8 +4,8 @@
 from __future__ import unicode_literals
 import frappe
 from frappe import _
-from frappe.utils import fmt_money, formatdate, format_time, now_datetime, \
-	get_url_to_form, get_url_to_list, flt, get_link_to_report
+from frappe.utils import (fmt_money, formatdate, format_time, now_datetime,
+	get_url_to_form, get_url_to_list, flt, get_link_to_report, add_to_date, today)
 from datetime import timedelta
 from dateutil.relativedelta import relativedelta
 from frappe.core.doctype.user.user import STANDARD_USERS
@@ -151,8 +151,9 @@
 	def get_calendar_events(self):
 		"""Get calendar events for given user"""
 		from frappe.desk.doctype.event.event import get_events
-		events = get_events(self.future_from_date.strftime("%Y-%m-%d"),
-			self.future_to_date.strftime("%Y-%m-%d")) or []
+		from_date, to_date = get_future_date_for_calendaer_event(self.frequency)
+
+		events = get_events(from_date, to_date)
 
 		event_count = 0
 		for i, e in enumerate(events):
@@ -825,4 +826,14 @@
 		last_year_closing_count = get_count_on(account, fieldname, fy_start_date - timedelta(days=1))
 		count = count_on_to_date + (last_year_closing_count - count_before_from_date)
 
-	return count
\ No newline at end of file
+	return count
+
+def get_future_date_for_calendaer_event(frequency):
+	from_date = to_date = today()
+
+	if frequency == "Weekly":
+		to_date = add_to_date(from_date, weeks=1)
+	elif frequency == "Monthly":
+		to_date = add_to_date(from_date, months=1)
+
+	return from_date, to_date
\ No newline at end of file