The current implementation displays "all day" for single-day all-day events, and a start time of 00:00 and end time of 23:59 for multi-day all-day events. This is inconsistent, and both labels aren't necessarily correct, because they are too specific.
For my application I have events that take place on one or more days, but they don't necessarily start at 00:00 on the first day nor end on 23:59 on the last. Likewise, single-day events don't necessarily take "all day", but rather they take place on that day, and there may be various reasons, why I can't specify a time.
What I'd like to get across to my readers is just a date (or start and end date for multi-day events), but I don't want to show a time. Could the "all day", "Start: 00:00" and "End: 23:59" labels be simply omitted or is there a use case where they're needed?
Comments
Comment #1
michelleI'm in favor of eliminating them. I don't think the "all day" label really adds anything. An event that is really 24 hours is probably fairly rare. I'd rather just see dates with no times when no specific times are given.
Michelle
Comment #2
nancydruWell, I have a list of conferences in my calendar. These are multiday events. Right now it shows the start time (only) on the first day and the end time (only) on the last day, with "all day" for the in-between days. This is okay, but not actually correct. Most of these events actually have a start and end time on each day. I suspect most of the users know this. The primary value to the start time on the first day and end time on the last is travel arrangements. Once they're at the location, they are there "all day."
However, the bulk of my single day "all day" events are holidays, for which start and end time are totally worthless.
So, in both cases, the "all day" label on the calendar is largely useless.
As Michelle states, a true "all day" event is pretty rare, if they even exist. There may be true 24-hour events, but they would most likely not start and end at midnight, so they would span days and have start and end times.
Comment #3
michelleI guess the question is, would you ever have an event that started at, say 8am on June 1 and ran 24 hours a day until June 5th where it ended at 5pm? That seems like it would be rare. If we can eliminate that case, we can assume that the start and end times are for each day and display like:
(With times enabled:)
June 1 - June 5 8am - 5pm (for on the node) [I already do this in my theme code, which I can share if it's wanted]
June 1 8am - 5pm, June 2 8am - 5pm, etc (on the calendar pages)
(With times disabled)
June 1 - June 5 (for on the node)
Just the event name each day on the calendar
(Adjusted of course for 12/24 hour and European styling of date display)
If the different days have different start and end times, then my way of doing it on my site would be to just not put times in the event and put them in the description instead. Event repeat may also be of use here, but I haven't looked at it that closely to know for sure.
Michelle
Comment #4
michelleLooking at the code, it looks like this is all handled in theme_ functions. If killes doesn't want to make the change to the actual module, I could provide theme over-rides to handle it. I'm looking at what needs to be changed, now, but my toddler is getting restless. Will check back when I have something.
Michelle
Comment #5
nancydru@Michelle #3: Yes, that is the way all of my conferences are entered. Starting time on the first day and ending time on the last day. While there are actually start and end times on the in-between days, I don't use them (too much trouble). The important thing is that they know by what time to arrive, and after which time they can leave. In between they are pretty much committed to being there, so specifying times on those days is a moot point; they can work that out on their own, with a conference schedule in their hands.
Comment #6
michelleNancy - So you think in your case that having the same start end time listed on each day would be more confusing to your users than having it say "all day" in the middle?
I'm trying to figure out how we can cover all possibilities without getting into option checkbox hell. :)
BTW, on further inspection, it looks like a change to the event.module code would be needed, not just theme overrides, so I need killes to weigh in on this. Since I'm not interested in forking events, I don't want to spend a lot of time on a patch that will just get rejected.
Michelle
Comment #7
nancydruNo, I'd rather see the "all day" go away. It is inaccurate, certainly in this case, and I cannot envision a case where it is accurate, meaningful, or even slightly useful.
Comment #8
gerhard killesreiter commentedI have made a change to the event module. Now, the start and end days of multi-day events get marked as "all day" if they start at 00:00 (end at 23:59). As a consequence of this, they will by default not display any time.
Please evluate this change and mark the issue fixed, if that is what was wanted.
Comment #9
michelleOk, while my son was eating / playing at McDondalds for lunch, I wrote out on paper all the combinations I can think of. This is what I came up with:
1) One day no times
Input: Enter start date, check box for no end date, check box for no times
Output (node): Date only
Output (calendar): Title only
2) One day with times
Input: Enter start date and start time, enter end date (same as start date) and end time.
Output (node): Show date once followed by start and end times [ie: June 1, 2007 9:00 - 17:00]
Output (calendar): Start / end times
3) Multiple consecutive days without times
Input: Enter start date and end date, check box for no times
Output (node): Show start and end date only [ie: June 1, 2007 - June 5, 2007]
Output (calendar): Show title only on each day of event
4) Multiple consecutive days with same times each day
Input: Enter start date with start time and end date with end time
Output (node): Show start and end dates followed by times [ie: June 1, 2007 - June 5, 2007 9:00 - 17:00]
Output (calendar): Show title and times on each day of event
5) Multiple consecutive days where entire event has one start and end time (Nancy's conference example)
Input: Enter start date with start time and end date with end time
Output (node): Show start date and time to end date and time [ie: June 1, 2007 9:00 - June 5, 2007 17:00]
Output (calendar): Show title and start time on first day, title only on middle days, title and end time on last day
6) Multiple consecutive days with different times each day - Not supported; use event repeat
7) Multiple days not consecutive - Not supported; use event repeat
Going from memory since I'm short on time, but I think these are the issues:
#1 needs the "no end date checkbox" for input and getting rid of "all day" on the output
#2 needs to only show the date once
#3 I think this is taken care of by killes' latest on the calendar and just needs the node change
#4 & #5 - These are difficult because the input is the same for both so we'd need some way of determining which way to display. They currently display as #5, so it would be a matter of adding an extra option for displaying like #4 or possibly leave this up to the themer.
Have I covered everyone's use cases? Any thoughts on my input / output suggestions? We're actually fairly close to my suggestions now so it would only take a little tweaking on the input and maybe making more options available to themers to get the output exactly how each person wants it.
Michelle
Comment #10
salvisGreat list! Here's one more that's absolutely essential for me:
8) One day with only a start time (instantaneous / open-ended event)
Input: Enter start date and start time, check box for no end date [or enter end date (same as start date) and end time (same as start time), this is currently implemented].
Output (node): Show date and start time [ie: June 1, 2007 9:00]
Output (calendar): Start time
I think we also need to consider what exactly will be stored for each case, and how it will be created in the case of jsCalendar.
#8: I don't see your change: for a 4-day event I still see "Start: 0:00, all day, all day, End: 23:59". What I asked for at the start of this thread was to see only the titles four times.
In the meantime Michelle has gone far beyond that. Please provide some guidance on how far we can go:
Comment #11
michelleFor the change in comment #8, you need to grab the latest event.module from cvs. I tried it and it works. No more times on the first and last day of multi day all day events. Still says all day, but that can be removed at the theme level.
"Can we integrate event_all_day?"
AFAIC, it's an essential part of the interface. I don't see much point in having it as a separate module. If you don't ever have "no times" events, you just would always put times in.
"Can we add flags to the database (for checkbox values)?"
I've been pushing and pushing for this. Personally, I think having to compare for time being 00:00 - 23:59 to be cumbersome. I'd much prefer having a flag for "ignore times" and another for "ignore end date" (or the reverse) and use that rather than the times. I don't think storing it in the seconds is a good idea. That's even less clear.
"I think we also need to consider what exactly will be stored for each case, and how it will be created in the case of jsCalendar."
At this point, which js based calendar will be used is up for debate. Until that's settled, it's hard to work out how it will figure into the interface. As to what will be stored, that depends on if we can convince killes to add a couple of boolean fields for the checkboxes. :)
Michelle
Comment #12
salvisHmm, that's odd. 5.x-2.x-dev had an update on May 31, so I figured it would be in there. There's a new update dated June 1, and it's in there now. The prior comments still apply as you already mentioned.
I'm using subversion and haven't brought myself to installing cvs yet — but I will...
I agree. But if we absolutely had to do without any additional flags, then it might be an option. For example, 00:00:01 (which cannot be entered through the UI) could be used as "all day"/"hide times". It would be a kludge, but it would be more controllable than the 00:00 .. 23:59, which can also be entered manually.
Would you have a pointer?
Comment #13
michelleThe dev snapshots are updated once a day. If you want it sooner, you need to either use CVS the normal way (I don't) or get it from http://cvs.drupal.org/viewcvs/drupal/contributions/modules/event/ which is what I do.
True, but still very kludgy. Hopefully killes will see the light and add a field. *grin*
http://drupal.org/node/142181
Comment #14
salvisThanks!
Comment #15
Flow_TnT commentedHey...is this issue still open?
Comment #16
mcurry commentedsubscribe
Comment #17
japerryEvent for Drupal 8 is unrelated to older versions. If an issue similar to this one exists, please open a new issue with the 8.x branch.