Skip to content

Data models

Class diagram

classDiagram
    class CalendarType {
        +CharField name
        +TextField description
    }

    class Calendar {
        +ForeignKey calendar_type
        +CharField name
        +TextField description
    }

    class RecurrenceRule {
        +CharField name
        +PositiveIntegerField freq
        +PositiveIntegerField interval
        +PositiveIntegerField count
        +DateTimeField until
        +JSONField bysecond
        +JSONField byminute
        +JSONField byhour
        +JSONField byday
        +JSONField bymonthday
        +JSONField byyearday
        +JSONField byweekno
        +JSONField bymonth
        +JSONField bysetpos
        +PositiveIntegerField wkst
    }

    class Event {
        +ForeignKey calendar
        +CharField title
        +TextField description
        +DateTimeField dtstart
        +DateTimeField dtend
        +ForeignKey organizer
        +PositiveIntegerField priority
        +ForeignKey recurrence_rule
        +JSONField exdates
        +JSONField rdates
    }

    CalendarType "1" --o "0..*" Calendar : calendars
    Calendar "1" --o "0..*" Event : events
    RecurrenceRule "0..1" --o "0..*" Event : events