I am trying to build a notifier program(email alerts followed by sms alerts in the future).
However I am unsure how to deal with this scenario and I am unsure if google calendar tries to solve this problem(as they suffer from it as well) or if they just don't care.
Say User A sets a meeting for 7/20/2010 and shares their calendar with User B then goes to google calendar and adds a reminder of 4 days( so user B should get an email reminder on 7/16/2010).
Now all of a sudden User B changes the meeting to the 7/15/2010 but User B notification does not change. I go and look at it is still set to 4 days(so the reminder I am guessing would be sent on the 16th still).
So do any sites deal with this issue and if so how?
Like if you get dependent开发者_StackOverflow on an email alert coming you really could get messed up as they might not be checking the online application as they might go an email alert will tell me when to come.
Some Solutions
User A emails everyone of the change( not a very good option for my site as this is one of my selling points that I want to drive is if you make a change all subscribers will know about the change).
When User A does a change automatically email all subscribers telling them their notification dates might be out of sync. - So So option but I rather have something better.
Try to determine if notification is out of range and try to move it up or down to make it in range. So in the case of my example I would force that subscribers notification to 5 days instead of 4.
This option again is ok but I don't if I like the though of changing stuff the user did behind their back. Plus this might be hard to figure out how much to move it by or lessen it by.
I don't see a problem with #3. A reminder request isn't permanent "user data", it's temporary data that has no meaning after a fixed date. If a user requests 4 days notice and the organizer moves the meeting to be 3 days away, then the best way to honor the "request" from the user is to notify them immediately. To not notify them is to fail to honor their request completely.
To look at it another way, when the meeting is moved such that the request is overdue, you've already lost the "user data". A request has no meaning or relevance after it has has been sent or expired. Your app has failed to honor the user request, simply because you can't anticipate flakey meeting organizers. I think you can salvage the scraps of the intent behind the request by sending an immediate reminder including a notice that the event has moved.
I suggest that every time a user changes a date for the event all subscribers to that event must receive an instant notification by email/sms which will say
"Event A has been moved from 20th July 2010 to 16th July 2010, by Mr.X. Your calendar has been updated."
Also you should move all reminders to maybe 1-2 days before the event (unless it is already that same day).
精彩评论