Synago’s main scheduling algorithm is based upon the commitment of the users. Instead of having large calendars with attendance scheduled long into the future, Synago only looks at 1 week intervals, and plans attendance in accordance with that.
Imagine a week has been scheduled, and in the first three days, two already has achieved a minyan.
Days | Attendees | Minyan? |
---|---|---|
Sunday | 9 | |
Monday | 11 | |
Tuesday | 10 | |
(...) |
Then David signs up.
David looks a bit like the guy who founded Synago.
He’s pretty busy and has an unpredictable calendar, so he only signs up for 1 day each week.
Synago then looks at the plan as it is currently:
Days | Attendees | Minyan? |
---|---|---|
Sunday | 9 | |
Monday | 11 | |
Tuesday | 10 | |
(...) |
Magic happens.
And in this case, places David the only obvious place, which is Monday.
Days | Attendees | Minyan? |
---|---|---|
Sunday | 9 + David = 10 | |
Monday | 11 | |
Tuesday | 10 | |
(...) |
For the sake of simplicity, the above example is pretty straight-forward. But a real world example is not much different. It only gets a bit more complicated when you calculate in 3 services each day, yahrzeits, preferred days and concurrence, when multiple users are updating their commitments at the same time, to mention a few.
This means that the schedule can update and change during the week, when users create or change their committed days.
In the above example, the 9 other people assigned to Monday would receive the following notification:
Dear Yoshua, we are happy to inform you that a user has signed up for a service on Sunday, meaning that minyan on this day is now guaranteed. We look forward to seeing you in the Synagogue. Best regards, Synago.
A more thorough example is available in the About-section.