How to schedule a toast notification (XAML)
Note Not using C#/VB/C++? See How to schedule a toast notification (HTML).
You can schedule a toast notification to appear at a specific time.
What you need to know
Technologies
- Windows Runtime
Prerequisites
- A working knowledge of toast notification terms and concepts. For more information, see Toast overview.
- The ability to create a basic Windows Store app with C# or C++ Microsoft Visual Basic using Windows Runtime APIs. For more information, see Create your first Windows Store app using C# or Visual Basic.
- The Toast Capable option must be set to "Yes" in your app's manifest to send or receive toast notifications. For more information, see How to opt in for toast notifications.
Instructions
Step 1: Add namespace declarations
Windows.UI.Notifications includes the toast APIs.
using Windows.UI.Notifications;
using Windows.Data.Xml.Dom;
Step 2: Specify a template
Before you can specify the delivery time, you must create the notification.
ToastTemplateType toastTemplate = ToastTemplateType.ToastText02;
XmlDocument toastXml = ToastNotificationManager.GetTemplateContent(toastTemplate);
Step 3: Provide toast notification content
We won't cover this here because it's the same for a scheduled toast as for a non-scheduled toast. For more information, see Quickstart: Sending a toast notification.
Step 4: Specify the time that the toast notification should be delivered
This example specifies that the notification should appear in 3 hours. This example uses the DateTime object.
Int16 dueTimeInHours = 3;
DateTime dueTime = DateTime.Now.AddHours(dueTimeInHours);
Step 5: Create the scheduled toast notification object
Send the toast notification content and the scheduled delivery time to the constructor.
ScheduledToastNotification scheduledToast = new ScheduledToastNotification(toastXml, dueTime);
Step 6: Optional: Give the scheduled toast notification an ID
This ID must be 16 characters or less. It can be used later if you want to cancel the notification.
scheduledToast.Id = "Future_Toast";
Step 7: Add your toast notification to the schedule.
Create the ToastNotifier object, which in turn is used to add your notification to the schedule.
ToastNotificationManager.CreateToastNotifier().AddToSchedule(scheduledToast);
Adding a toast notification that repeats at a specific interval
The following code displays a single toast notification five times, each one minute apart, starting in three hours. The code to fill in the template is omitted for clarity.
ToastTemplateType toastTemplate = ToastTemplateType.ToastText02;
XmlDocument toastXml = ToastNotificationManager.GetTemplateContent(toastTemplate);
// TO DO: Fill in the template with your notification content here.
Int16 startTimeInHours = 3;
DateTime startTime = DateTime.Now.AddHours(startTimeInHours);
ScheduledToastNotification recurringToast = new ScheduledToastNotification(toastXml, startTime, 60 * 1000, 5);
recurringToast.Id = "Recurring_Toast";
ToastNotificationManager.CreateToastNotifier().AddToSchedule(recurringToast);