C1Scheduler does not show eddective date of cycle event

Posted by: license on 19 September 2019, 11:05 pm EST

  • Posted 19 September 2019, 11:05 pm EST

    We have a problem with cycle events - after adding a new one with these example data:
    Start date : 20.09.2019 13:00
    End date : 20.09.2019 14:00,
    with weekly recurrance on Mondays and Tuesdays, the Recurrance.Description property returns a proper description: "Occurs every Monday, Tuesday effective 20.09.2019 from 13:00 to 14:00". But the main window of the C1Calendar combined with C1Scheduler does not show this day 20.09 as bolded (with an event). Other scheduler apps - like Thunderbird - do show this day bolded.

    Actually we use C1.Wpf edition - version: 4.0.20173.578
  • Replied 22 September 2019, 10:54 pm EST


    I observe exactly as you mention.
    However, I am trying to understand why do you want to show the date 20.09.2019 as bolded? Like you mention, the event is every scheduled at every Monday and Tuesday the recurrence will show events for every Monday and Tuesday. In this case, why do you expect the date 20 to appear bolded?
    Once I am clear understanding your use-case, I shall be able to assist you better.

  • Replied 22 September 2019, 11:20 pm EST

    Hi, thanks for your reply.

    Yes - it is important for us, because this schedule is used by us in our building management system (which we are developing) - and this occurrence at 20.09 is firing this day (we use iCal and Radicale as server to store these schedules). But the user, who setups' this event - thinks that this occurrence won't happen. This information is not legible and misleads the user.

    I've wrote about Thunderbird - which work as we expect witch this example. And also our iCal library (https://github.com/rianjs/ical.net) does.

    Jack Mazurek
  • Replied 23 September 2019, 6:00 pm EST

    Hello Jack,

    Thank you for sharing the information.
    If you just wish to apprise the user that the the event has correctly been separated, then you may handle the BeforeAppointmentSave event. This event fires when an appointment is saved by the end-user. So, using this event you can notify the user that occurrence has been saved.
    private void Scheduler1_BeforeAppointmentSave(object sender, AppointmentActionEventArgs e)
    MessageBox.Show($"{e.Appointment.Subject} created");
    Additionally, to show the date in bold you can do this through the BoldedDates.CollectionChanged event, as follows:
    private void BoldedDates_CollectionChanged(object sender, NotifyCollectionChangedEventArgs e)
    if(e.Action == NotifyCollectionChangedAction.Reset)
  • Replied 20 November 2019, 5:20 pm EST

    Hello Ruchir,
    ok, I've managed to Bold the dates on C1Calendar - but still, I'm working on show these scheduled events on C1Scheduler. On your sceenshot's - the problem does exist.

    The C1Calendar was simple - by using C1Scheduler.DataStorage.AppointmentStorage.Appointments.GetOccurrences I can scan all the appointments (by the way - there are only occurences - no masters), and add ParentRecurrence.Start.Date to BoldedDates.

    But what about the Scheduler? How to solve this issue? Can I somehow instruct this Control to show master occurences?

    Best regards,
    Jacek Mazurek
  • Replied 25 November 2019, 8:10 pm EST

    Hello Jacek,

    Can you please share an image of exactly how you want to show the scheduled event on C1Scheduler? You can just edit any of the images above to show your expected UI w.r.t master occurrences.

  • Replied 30 August 2020, 3:04 pm EST

    Hello, sorry for such a long answer.

    I've been working with some other projects. But here I am.

    I've edited one of the screens:

    It should look like there is the first occurrence on Tuesday, but not recurring. It should o the job.

    Thanks and best regards.
  • Marked as Answer

    Replied 2 September 2020, 5:29 am EST

    Hi Jacek,

    As I understand you want to add an appointment (without recurrence symbol) at the starting date of the recurrence appointment.
    If so, you can use the AppointmentAdded event, which will fire as soon as you add a recurrence appointment. Inside this handler, you can programmatically add a new appointment at the starting date as follows:
    private void Scheduler1_AppointmentAdded(object sender, AppointmentActionEventArgs e)
    DateTime startDate = e.Appointment.Start;
    Appointment psudoAppointment = new Appointment();
    psudoAppointment.Start = startDate;
    psudoAppointment.End = startDate;
    psudoAppointment.Body = e.Appointment.Body;
    psudoAppointment.Subject = e.Appointment.Subject;
    If you just it to be displayed and do not want the user to interact with it, you can make it non-editable also and/or customize it as per your requirements.

Need extra support?

Upgrade your support plan and get personal unlimited phone support with our customer engagement team

Learn More

Forum Channels