Calendar

Our shared public calendar has dates for upcoming events in the lab. It contains public events that are of interest to the team and students.


ISE calendar data flow

The ISE calendar combines manually maintained events with automated imports from TimeEdit and AISNET. The resulting canonical calendar data feeds both the public ISE calendar page and an ICS feed that can be subscribed to from external calendar applications.

flowchart LR
    manual[Manual additions]

    subgraph automated[Automated imports]
        timeedit[TimeEdit sync]
        ais[AIS sync]
    end

    events[(data/events.yaml)]

    calendar[ISE calendar page]
    ics[ICS feed for sync]

    manual --> events
    timeedit --> events
    ais --> events

    events --> calendar
    events --> ics

    click manual "#manual-additions" "Read about manual calendar additions"
    click timeedit "#automated-imports" "Read about automated imports"
    click ais "#automated-imports" "Read about automated imports"
    click events "https://github.com/fs-ise/handbook/blob/main/data/events.yaml" "View canonical calendar data"
    click calendar "#" "Go to the calendar page"
    click ics "#ics-feed-calendar-sync-output" "Read about the ICS feed"

    classDef clickable text-decoration:underline;
    class manual,timeedit,ais,events,calendar,ics clickable;


All input modes are normalized into the shared data/events.yaml file before the calendar page and ICS feed are generated.

Manual additions

Manual additions are maintained directly in data/events.yaml. Use this mode for events that are not available from an automated source.

Automated imports

Some imports are automated, so most users do not need these operational details during normal calendar use.

TimeEdit sync

The TimeEdit sync imports teaching and timetable-related events with src/sync_timeedit.py. It runs through the TimeEdit calendar sync GitHub Action.

To run the same sync locally from the repository root:

python -m pip install .
python src/sync_timeedit.py

AIS sync

The AIS sync imports selected conference events with src/sync_aisnet.py. It runs through the AISNET sync GitHub Action.

To run the same sync locally from the repository root:

python -m pip install .
python src/sync_aisnet.py

ICS feed / calendar sync output

The ICS feed is generated from the same canonical data as the calendar page by src/update_calendar.py, with regular updates handled by the calendar ICS GitHub Action. Subscribe to the ISE calendar ICS feed from external calendar apps instead of manually copying events.

https://raw.githubusercontent.com/fs-ise/handbook/main/assets/calendar/fs-ise.ical