Mike's Notes
The first customer needs a calendar module that can import and export with Google Calendar, and the rest (Outlook, Yahoo, etc). Here are some notes and references to help me build this quickly. The data model is mainly complete.
Below is a table of contents from the Google Calendar online article by Alexey Makhotkin, taken from his book.
Resources
- https://developers.google.com/workspace/calendar/api/concepts
- https://www.geeksforgeeks.org/system-design/system-design-design-google-calendar/
- https://www.lldcoding.com/design-google-calendar-database-model
- https://databasedesignbook.com/posts/database-design-for-google-calendar-pt-1
- https://databasedesignbook.com/posts/database-design-for-google-calendar-pt-2
- https://databasedesignbook.com/posts/database-design-for-google-calendar-pt-3
- https://minimal-modeling.kit.com/posts/database-design-for-google-calendar-pt-4
- https://minimal-modeling.kit.com/posts/database-design-for-google-calendar-pt-5-6
- https://minimal-modeling.kit.com/posts/database-design-for-google-calendar-pt-7
- https://minimalmodeling.substack.com/
- https://use-the-index-luke.com/
- https://modern-sql.com/
- https://kb.databasedesignbook.com/posts/google-calendar/
- https://kb.databasedesignbook.com/posts/historized-attributes-design/
- https://kb.databasedesignbook.com/posts/restaurant-attributes-design/
References
- Database Design Book. By Alexey Makhotkin.
Repository
- Home > Ajabbi Research > Library > Subscriptions > Minimal Modelling
- Home > Handbook >
Last Updated
10/07/2025
Database Design for Google Calendar: a tutorial
By: Alexey Makhotkin
Database Design Book: 20/05/2024
Table of contents
- Introduction
- Intended audience
- Approach of this book
- Problem description
- Part 1: Basic all-day events
- Anchors
- Attributes of User
- Attributes of DayEvent
- Links
- A peek into the physical model
- Part 2: Time-based events
- Time zones
- Anchors
- Attributes of Timezone
- Attributes of TimeEvent
- Links
- Similarities between DateEvent and TimeEvent
- Part 3. Repeated all-day events
- Attribute #1, cadence
- Attribute #2, tangled attributes
- Attribute #3
- Days of the week: micro-anchors
- Are we done?
- Repeat limit: more tangled attributes
- Part 4. Rendering the calendar page
- A note on tempo
- General idea
- Day slots
- Exercise: TimeSlots
- How far ahead do you need to think?
- Part 5. Rendering the calendar page: time-based events.
- Part 6. Complete logical model so far
- Part 7. Creating SQL tables
- Anchors: choose names for tables
- Attributes: choose the column name and physical type
- 1:N Links
- M:N links
- Finally: the tables
- Conclusion
- What’s next?
No comments:
Post a Comment