• Home
  • What is ?
  • DSA
  • MAD
  • Concept
  • Practice
  • Misc
  • Quiz
  • YT
  • Home
  • What is ?
  • DSA
  • MAD
  • Concept
  • Practice
  • Misc
  • Quiz
  • YT
  • #News
  • #APPS
  • #Events
    • #WWDC
    • #I/O
    • #Ignite
  • #Let’s Talk
  • #Interview
  • #Tips

MyCodeTips mycodetips-newlogocopy1

  • Home
  • What is ?
  • DSA
  • MAD
  • Concept
  • Practice
  • Misc
  • Quiz
  • YT
IOS

How to Create iCal event in IOS

Basically calendar control needs to keep informations in a managed way with dates. for that we need to integrate calendar controls in IOS programatically. There are lots of custom controls available in wan please take a look at this link Custom Calendar Cotrols

Process for creating programmatically event:

-(void)initCalendar {

// An array of 1 dictionary object, containing START and END values.
NSMutableArray* pvDict = [[NSMutableArray alloc] initWithContentsOfURL:[NSURL URLWithString:PV_URL ]];

// Check if the private view event already exists in the default calendar.
// Then set the calendar button state.

// Get a entry point to the Calendar database.
self.store = [[EKEventStore alloc ] init ];

// Get an array of all the calendars.
NSArray *calendars = store.calendars;

// Get the default calendar, set by the user in preferences.
EKCalendar *defaultCal = store.defaultCalendarForNewEvents;

// Find out if this calendar is modifiable.
BOOL isDefaultCalModifiable = defaultCal.allowsContentModifications ;

// Create an event in the default calendar.

self.event = [ EKEvent eventWithEventStore:store ];

self.event.title = CHELSEA_SPACE ;
self.event.location = CHELSEA_ADDRESS ;

NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setDateFormat:@"yyy-MM-dd HH:mm:ss.S"];

NSString *startString = [[ pvDict objectAtIndex:0] objectForKey:@"starts" ];
NSDate *dateStart = [dateFormatter dateFromString:startString];

NSString *endString = [[ pvDict objectAtIndex:0] objectForKey:@"ends" ];
NSDate *dateEnd = [dateFormatter dateFromString:endString];

self.event.startDate = dateStart;
self.event.endDate = dateEnd;

self.event.calendar = defaultCal ;

// Alternative code to add 2.5 hours to start time.
// [[NSDate alloc] initWithTimeInterval:9000 sinceDate:event.startDate];

// Search for events which match this date/time start and end.
// Compare the matched events by event TITLE.

NSPredicate *predicate = [store predicateForEventsWithStartDate:event.startDate
endDate:event.endDate calendars:calendars];

NSArray *matchingEvents = [store eventsMatchingPredicate:predicate];

self.calendarButton.enabled = NO;

if( ! isDefaultCalModifiable ) {
// The default calendar is not modifiable
return ;
}

if ( [ matchingEvents count ] > 0 ) {

// There are already event(s) which match this date/time start and end.
// Check if this event is the PV

EKEvent *anEvent; 
int j;

for ( j=0; j < [ matchingEvents count]; j++) {

anEvent = [ matchingEvents objectAtIndex:j ] ;
if([ CHELSEA_SPACE isEqualToString: anEvent.title ]) {
// PV event already exists in calendar.
return;
}
}
[ anEvent release ];
}

self.calendarButton.enabled = YES;

[ pvDict release ];
}

-(void)addEventToCalendar:(id)sender {

NSError *error;
BOOL saved = [self.store saveEvent:self.event span:EKSpanThisEvent error:&error];

NSLog(@"Saved calendar event = %@\n", (saved ? @"YES" : @"NO"));
self.calendarButton.enabled = NO;

}
Liked it? Take a second to support Ranjan on Patreon!
Become a patron at Patreon!
  • Click to share on Reddit (Opens in new window)
  • Click to share on Facebook (Opens in new window)
  • Click to share on Twitter (Opens in new window)
  • Click to share on LinkedIn (Opens in new window)
  • Click to share on Tumblr (Opens in new window)
  • More
  • Click to share on Pocket (Opens in new window)
  • Click to share on Pinterest (Opens in new window)
Written by Ranjan - 1557 Views
Tags | Calendar, IOS
AUTHOR
Ranjan

Namaste, My name is Ranjan, I am a graduate from NIT Rourkela. This website is basically about of what i learnt from my years of experience as a software engineer on software development specifically on mobile application development, design patterns/architectures, its changing scenarios, security, troubleshooting, tools, tips&tricks and many more.

You Might Also Like

structures-classes-enum

Structures and Classes in swift !

November 22, 2021
mycodetips userdefault

where is nsuserdefaults stored ?

February 17, 2020
objective-c-datatypes1

Objective-C Data Types

November 12, 2021
Next Post
Previous Post

Support us

mycodetips
mycodetips

Follow us @ LinkedIn 2850+

Subscribe for updates

Join 8,213 other subscribers

Latest Posts

  • YT-Featured-solidprinciples
    SOLID Principles of Software Design
  • IOS 16 Features
    Latest features in IOS 16
  • r-language
    How can R language be used for data analysis?
  • wordpress-coding-blog
    Guide To WordPress Coding Standards
  • YT-Featured-Algorithm
    What is Algorithm?
whiteboard

Whiteboard(PRO)

whiteboard

Whiteboard(lite)

alphabets

Kids Alphabet

techlynk

Techlynk

techbyte

Do2Day

techbyte

Techbyte

  • #about
  • #myapps
  • #contact
  • #privacy
  • #Advertise
  • #myQuestions

Android Android Studio API APP Programming Apps blogging CSS DATABASE dsa Features HTML HTML5 installation Interview Questions IOS iPhone javascript Mac objective-c OS Programming quicktips SDK SEO SQL swift Tips & Tricks Tools UI Web Wordpress Xcode

  • SOLID Principles of Software Design
  • Latest features in IOS 16
  • How can R language be used for data analysis?
  • Guide To WordPress Coding Standards
  • What is Algorithm?

©mycodetips.com