האתגר
סנכרון יומן נשמע פשוט: קוראים אירועים מהיומן, מציגים משבצות זמינות, סיימנו. בפועל, זה מפתיע במורכבות שלו.
הנה מה שאנחנו באמת פותרים:
- יומנים מרובים (עבודה, אישי, פרויקטים צדדיים)
- ספקי יומנים שונים (Google, Microsoft, Apple)
- טיפול באזורי זמן ברחבי העולם
- עדכונים בזמן אמת כשאירועים משתנים
- פרטיות (לא לחשוף פרטי אירועים)
איך MochiMeet מטפל בזה
שלב 1: חיבור OAuth
כשמחברים את חשבון Google או Microsoft, אנחנו מבקשים הרשאות ספציפיות:
- גישת קריאה ליומנים (לזמנים תפוסים)
- גישת כתיבה ליצירת אירועים (להזמנות)
אנחנו אף פעם לא רואים כותרות או תיאורים של אירועים — רק בלוקי זמן שתפוסים.
שלב 2: חישוב זמינות
כשמישהו מבקר בדף ההזמנה שלך, אנחנו:
- שולפים מרווחי זמן תפוסים מכל היומנים המחוברים
- מחילים את לוח הזמנים השבועי שלך (למשל, ראשון-חמישי 9:00-17:00)
- מחילים כללי הזמנה (מינימום מראש, מקסימום מראש, זמני חיץ)
- מייצרים משבצות זמינות לפי הגדרות המרווח
כל זה קורה בזמן אמת, כל פעם שמישהו טוען את הדף.
שלב 3: מניעת התנגשויות
בין טעינת המשבצות לאישור ההזמנה, דברים יכולים להשתנות. מישהו עלול להזמין משבצת ישירות ביומן.
אנחנו מטפלים בזה עם בדיקה כפולה ברגע ההזמנה:
- שליפה מחדש של זמנים תפוסים
- אימות שהמשבצת עדיין זמינה
- רק אז יוצרים את אירוע היומן
קסם אזורי הזמן
אזורי זמן ידועים לשמצה כמסובכים. הנה הגישה שלנו:
- לוח הזמנים שלך נשמר באזור הזמן שהגדרת
- זמנים תפוסים נשלפים ומושווים ב-UTC
- משבצות מוצגות באזור הזמן שזוהה של האורח
- רשומת ההזמנה שומרת את שני אזורי הזמן לבהירות
זה מבטיח שאורח בטוקיו רואה את הזמנים הנכונים כשהוא מזמין עם מארח בניו יורק.
מה הלאה
אנחנו עובדים על:
- סנכרון בזמן אמת מבוסס webhooks (במקום polling)
- תמיכה ב-iCal feed ליומנים לקריאה בלבד
- איגום יומנים צוותי לזמינות קבוצתית
שאלות על איך משהו עובד? פנו אלינו — אנחנו אוהבים לצלול לעומק הטכנולוגי.