For your case I would suggest storing the time the alarm should go off. You would store this information in either the application settings or in a file. When the user first asks for the reminder to be scheduled, continue what you are doing, and then also save the time for the alarm. You may want to also ask the user when they want the alarm to stop and save that as well.
To ensure that the alarm goes off every other day, you will need to add a background agent to your application. In the agent is an OnInvoke method. In this method you will check to see if the alarm is scheduled. If it is then you have nothing to do. If it is not, then schedule it for the following day. Agents fire about every 30 minutes, so 99% of the time your agent fires, the alarm/reminder will already be scheduled.
Here is the code to place in your OnInvoke method
string fileTitle = "Foo";
string fileContent = "Bar";
var action = ScheduledActionService.Find(fileTitle);
if (action == null)
{
// shouldn't be null if it was already added from the app itself.
// should get the date the user actually wants the alarm to go off.
DateTime date = DateTime.Now.AddSeconds(30);
action = new Reminder(fileTitle) { Title = fileTitle, Content = fileContent, BeginTime = date };
}
else if (action.IsScheduled == false)
{
ScheduledActionService.Remove(fileTitle);
// most likely fired today, add two days to the begin time.
// best to also add some logic if BeginTime.Date == Today
action.BeginTime = action.BeginTime.AddDays(2);
}
ScheduledActionService.Add(action);