Create new event in CalendarKit

Viewed 372

In my app, I'm trying to add ability to create a new event with CalendarKit when I press an empty space, but I can't find how to do that.

I know it's possible because you can do it in the demo app:

I've tried adding this to my app's code:

override func create(event: EventDescriptor, animated: Bool = false) {
    self.events.append(event) // self.events is my events data source
}

But it didn't worked, in fact, it doesn't even get called when I long press an empty space.

I also tried to look in the source code, but I found nothing. How can I do that? thanks in advance

1 Answers
override func dayView(dayView: DayView, didLongPressTimelineAt date: Date) {
    let newEvent = Event()
    
    newEvent.startDate = date
    newEvent.endDate = date.addingTimeInterval(3600)
    
    // Customize your event...
    newEvent.text = randomName() // A function that generates a new random name that haven't been used before.
    
    self.create(event: newEvent)
}

override func create(event: EventDescriptor, animated: Bool = false) {
    super.create(event: event, animated: animated)
    self.events.append(event)
}

override func dayView(dayView: DayView, didUpdate event: EventDescriptor) {
    for (index, eventFromList) in events.enumerated() {
        if eventFromList.text == event.text {
            events[index] = event
        }
    }
    self.endEventEditing()
    self.reloadData()
}

Please make sure that every Event have it's own unique name, otherwise it won't work

Related