Composite Events
Some occasions take more than one calendar entry: a weekly dinner and the band that plays during it, or one festival that two organizers each list. Composite events show those entries as one event.
Mark the main entry
#already:compositeAdd this to the description of the main entry, the parent. Every entry on the same calendar that starts during the parent's hours becomes one of its parts:
- Grid and list views show one card, the parent's, with up to three parts listed by start time and a count of any others.
- Month and week views show the parent's entry on its day, and a part that starts on that day has no entry of its own. The day view lists such a part as a row under the parent. A part that starts on another day keeps its own place on that day.
- The event page shows the parent, then each part with its own time, description, links, files, and RSVP button when the part takes RSVPs.
- A link to a part opens the parent's page at that part.
An entry starts during the parent's hours when its start is at or after the parent's start and before the parent's end. If the parent is a recurring event, the flag applies to every occurrence, and an occurrence with nothing inside it looks the way it always has.
Example: a dinner with live music
"Burger Night" runs every Friday from 5:00 PM to 9:00 PM, and its description includes #already:composite. On Fridays with music, you add the band as its own entry, "John Cavender", from 6:00 PM to 8:00 PM. Visitors see one Burger Night card with the line "6:00 PM John Cavender". Fridays without a band are unchanged.
Join a parent on another calendar
#already:part-ofWhen a view combines several calendars, a parent only takes entries from its own calendar. That keeps a festival flagged on one calendar from absorbing another organization's events. Add #already:part-of to an entry to let a parent on a different calendar take it. The entry still has to start during that parent's hours: the flag has no effect on an entry that no parent contains.
Example: one occasion listed twice
Two calendars in one view each list "John Prine Night", one from 4:00 PM and one from 5:00 PM. Put #already:composite on the entry that starts first, so that its hours contain the other's start, and #already:part-of on the other. Visitors see one card. The two titles match once capitals, punctuation, and emoji are set aside, so the second title is not repeated, and the event page shows both descriptions.
Keep an entry separate
#already:standaloneAn entry with this flag never becomes a part. Use it for an event that starts during a parent's hours and has nothing to do with it, such as a dinner in another room on the second night of a two-day class.
Details
- A parent is never a part of another parent.
- If an entry starts inside two parents, it joins one on its own calendar before one on another calendar. Between two that are both on its own calendar, or both on another, it joins the one with the shorter hours.
- A hidden entry is never a parent and never a part. Hiding a parent releases its parts, which then show on their own or join another parent that contains them.
- A composite's place in the list, its featured state, and the moment it counts as past are the parent's. Parts are shown with the parent for as long as the parent is, so give the parent hours that cover them.
- An all-day entry joins an all-day parent only, never a timed one.
#already:composite:<name>and#already:part-of:<name>are reserved. They are removed from the description and have no effect.- Each part keeps its own link. Calendar subscriptions and the iCal feed list every entry separately.