This is the jumping off page for all things related to events, calendar items, and other calendar related content.
see also:
Related Crabgrass Tools¶
Code to backport¶
- There is calendaring in greenchange: github.com/sethwalker/greenchange
- The basics of it can be found in the autistici trac or in the calendar branch on riseup
Looks like the bulk of the code to backport is collected here:
Some of that code – especially the date / calendering specific one has been taken from hyperactive. The original code in hyperactive seems to be quite a bit more powerful including repeating events and ical export. It can be found here:
Backporting Calendaring is a sketch of what might be necessary.
Tech notes¶
A few fields were added to the pages table that was put there only so that we can treat any page like a calendar item. This was needed because page was our only unit of permission resolution.
Things have changed. Now, you can associate page_terms with any object and use page_terms to resolves the permission access restrictions. For example, this is how assets work: you can join on the page_terms table in order to query all the assets you should have access to.
This is all done for you if you do add the column page_terms_id to your table and include PageData
in your model. See lib/page_data.rb for more details.
The result is that maybe these columns should be removed from pages and put back in events:
t.datetime "starts_at"
t.datetime "ends_at"
Commercial applications¶
some apps to steal ideas from.
- www.backpackit.com/calendar
- iscrybe.com
- polling meets calendaring: events coordination. www.doodle.ch
- sched.org: slick scheduling tool, really cool for conferences, tracking your schedule and the schedule of your friends. You can pick any arbitrary set of people and see their combined schedule.
- docs.moodle.org/en/Calendar_block (free), code (php)
- free calendaring software
Gantt Chart Style
Project management style calendering
Definition from wikipedia
Example
- http://www.merlin2.net/
- http://www.omnigroup.com/applications/omniplan/
- www.itaskx.com/software/en/default.htm
- xtime project
Open source code for calendaring¶
- personal planning calendar http://www.6zap.com/
Rails/ruby code for calendaring¶
- Family Calendar: open source simple calendar app in rails.
- Joyent: open source
Use Cases¶
Public events
A group called THE FANS OF JEAN BUSKIN wants to announce public events (their own as well as those of others that they think are interesting). For each event some group member creates an event page with WHO, WHAT, WHERE, and WHEN. These event pages are aggregated in a beautiful calendar view which is elegantly integrated into the public jump page for the group.
Crabgrass user WILD BILL HAYWOOD who is viewing the calendar sees that: THURS MAY 17, 5 p.m., at Bread & Roses Advocacy, 1009 4th Ave E, Olympia; OLYMPIA IWW REORGANIZING Meeting, where past dues will also be collected. By clicking a conveniently located button, WILD BILL adds this event to his calendar
Recurring group meetings
On the 3rd Thursday of every month, the SEA SHEPARD SOCIETY has a video conference to share the latest developments in animal rights and pirate fashion. But PAUL WATSON always forgets about the meeting, since he gave his planner to a sea turtle. With an easy few clicks, WATSON’S FIRST MATE adds a recurring event to the SEA SHEPARD group calendar and this is automatically added to PAUL and everybody else’s personal calendars. Since WHALE EATING NINJAS are trying to infiltrate these meetings, this confidential information is not publicly visible. BUT PAULs contacts and fellow-group-members can see that he is busy at meeting times, although they cannot see what he is up to (that makes it easy for the sea turtle to find a time when they can hang out.)
Scheduling Shifts
While in some ways standard calendars can be used to staff regular shifts, I think there are specific features important for this use. For example, somebody would first fill out what the empty shifts are for the next few months (likely specifying particular roles, so if the shop is open 3-9 tues-saturday, each shift might have a greeter from 2:30-7, another person from from 3-9, and a closer from 5-9:30). Then volunteers can look at the calendar, see which spots are empty, and sign up.
Two projects I was involved with now use this pretty crappy tool for shift scheduling, but find it really helpful:
one, two