WP-iCal: WordPress iCal Event Plugin

The WP-iCal plugin turns WordPress into a multi-author, online calendar. The plugin takes any posts in a ‘Calendar’ category and writes them to an .ics file ready for subscription into Apple’s iCal, Mozilla Calendar or other vCal-friendly app.

If you’d like to see it wp-ical in action, check out MNterative.com. If you’re running WP-iCal on your site, let me know and I’ll add you to this list.

WP-iCal 2008-11-12.166 – updated by Andrew Koransky – is the latest version, Download WP-iCal 2008-11-12.166

Download WP-iCal v0.9.7.1

Download WP-iCal BETA 2006-10-12

Like the WP-iCal? Say thanks and support its continued development via paypal

How To Use WP-iCal 0.9.x

  1. Upload an empty file to the root of your WordPress directory with the file name: “calendar.ics” and make it writable
  2. Change the $calpath variable in wp-ical.php (line 29) to the server path (often starts with /usr/home/). If you’re running v 0.9.5 or earlier, please download the latest version.
  3. Install the wp-ical.php file in your WordPress Plugins directory and activate.
  4. Create a ‘Calendar’ category in your WordPress installation. WP-iCal will look in this category to populate the calendar.ics file
  5. You will now see a ‘Calendar Event Details’ form when you create or edit a post in WordPress.
  6. Entering location information to a post will add it to the calendar.ics file.

How To Use WP-iCal 2006-04-11 and later

  1. Upload the wp-ical.php file in your WordPress root directory
  2. Upload the wp-ical-plugin.php file in your WordPress Plugin directory and activate
  3. Point your browser to the wp-ical.php file.

WP-iCal is released under the GNU General Public License.

Things to do before v1.0
Create iCal file and set permissions programmatically
Add list of Timezones
Support multiple calendars
– Write reference and read me info
– Connect to other calendar systems; i.e. Upcoming.org
– Maybe some Google Maps?

Version History
2006-10-12
– Fixed bug where single-digit hours were throwing off the minutes.

2006-09-01
– Fixed bug where all-day even flag wasn’t being set correctly.

1.0b (Released 14 Dec 2005)
– Can now create all day and multi-day events

0.9.7.1 (Released 11 Jul 2005)
– Resolved issues where calendar data didn’t acutally save

0.9.7 (Released 10 Jul 2005)
– Compatible with WordPress 1.5 “Strayhorn”

0.9.6 (Released 10 Apr 2005)
– Plugin now looks for ‘calendar.ics’
– Added the ‘How to Use’ instructions above

0.9.5 (Released 07 Mar 2005)
– Calendar is neow created when posts are saved and edited
– Stripping out funny characters so event location and post description are correctly loaded in the calendar
– Fixed bug with changes to event’s location, start time, and end time not updating correctly
– Known Issues: there’s a couple of stray slashes here and there, if you see something odd, add it to the comments.

0.9 (Released 05 Mar 2005)
– Using wp-postmeta tables to store event location, start time, and end time
– Events in iCal now use wp-postmeta information for location, start time, and end time
– Known Issues: Updates to location, start time, and end time don’t function correctly from Calendar Event Detail fields – use WordPress’s built-in meta fields for now.

0.8 (Released 15 Feb 2005)
– Using post’s publish date as event start time.

59 thoughts on “WP-iCal: WordPress iCal Event Plugin

  1. Jon Abad

    Are these published once or are changes to the post reflected in the calendar again?

    this sounds like a very neat idea, and i’m excited to see how you approach the setting of the time and the duration of the event.

    Reply
  2. Garrick Van Buren

    Right now, the event’s date/time is the same as the post’s publish date/time. For this version, the event’s duration is hard-coded at 1hr. Hoping to find a better solution to both of these before a v1.0 release.

    Reply
  3. Fabián Rodríguez

    I downloaded the plugin but I can’t seem to find out how it’s supposed to work. I don’t see anything new in the admin’s Write post page and there are no ics files generated anywhere when I post a new (future) event.

    I’ve also fixed a small bug (time zone hardcoded eventhough there’s a variable for it).

    Please contact me by email for the updated file. It’s also not clear what licence you distributed this under. I’d suggest GPL.

    Reply
  4. Jonas

    I’m trying out wordpress for our notes on properties and discovered your calendar plugin. I installed the pluginn alright, however I do not see where the .ics file is created? Where should the .ics file appear?

    Reply
  5. Garrick Van Buren

    Jonas,

    You’ll need to create the .ics file manually and set the permissions so it’s writable.

    Programmatically, I’m not able to set the permissions of the file so WordPress can to write to it.

    Reply
  6. martin

    Hi, sorry, I have also a problems. no .ics file, nothing is written on the server-path…. I created the file and did the permission to chmod 666… nothing happens

    Reply
  7. Garrick Van Buren

    Martin, a couple things to check:

    1. If are there spaces in your .ics file name? If there are, change them to either %20 or an underscore and update the wp-ical file appropriately.

    2. The path to the .ics file should be the absolute path, often starting with ‘/usr/…’

    3. Jonas had more luck adding ‘location’ and ‘start time/end time’ info to new posts and getting them to show up in the .ics file rather appending that info to old ones.

    Does this help?

    Reply
  8. Ben Parzybok

    Hi, this is a very cool idea.
    I have it working and am integrating it with
    phpicalendar. Together they make a nice solution.

    The one issue I’m having is that I would like for the multi-day events to show up in ical/phpicalendar as multi-day events.
    Right now if I have an event that goes from April 21 – April 26th, it just posts it to April 21st.
    Any ideas for me, or is this related to the time duration (set at 1 hr)? Even if it was set at 1 hour, it seems like it should still display across all days.

    At any rate, thanks for your work. This is cool.
    b

    Reply
  9. Pingback: CentronX.net

  10. Kirk Spencer

    OK, I have to be misunderstanding something.

    I’ve got calendar.ical (chmod 666) in
    /var/www/localhost/htdocs/wordpress/

    I changed line 29 to read exactly that.

    I put wp-ical.php in the above’s plugins directory.

    I can see the plugin in the manager. But when it’s applied, I can’t see a calendar edit element when writing.

    Got an idea?

    Reply
  11. Garrick Post author

    Kirk,

    Verify the wp-iCal plugin is active, and then drop me an email if you still don’t see the ‘Calendar Event Details’ section in the ‘Write Post’ screen.

    Thanks.

    Reply
  12. tim

    Garrick,

    do you know how to generate the UID for the ical File with php? Think that’s the biggest problem for creating the .ical File with php.

    Regards tim

    Reply
  13. Philip James Boardman

    Great, everything works.
    Except when you delete a post, it stays in the .ics file. It doesn’t happen much I guess, but if you deleted an event, you’d probably want it removed from the calendar file.

    Reply
  14. tim

    garrick, could you please show me the light.

    My problem is I can’t find the format describtion for theese UID (example below). Is there a kind of generation function in php available.

    the next lines are from a ical file created by mozilla’s calendar

    BEGIN:VCALENDAR
    VERSION
    :2.0
    PRODID
    :-//Mozilla.org/NONSGML Mozilla Calendar V1.0//EN
    BEGIN:VEVENT
    UID
    :9c997280-d91c-11d9-8c79-e1caa475472b
    SUMMARY
    more details and events start here

    regards tim

    Reply
  15. Grendel

    Hi,
    I’m using Thunderbird with a company’s ical… how about the functionality that I can enter a new event or duty locally and upload it to WPcalendar? Or is that already possible?
    regards,

    Grendel

    Reply
  16. Eric Nentrup

    Garrick…I’m a bit dense right now (vacation’s next week!). And I can NOT gather from your example what WP-iCal does, and of course, because the synapses aren’t firing right now and I’m swamped, I’m not just “demoing” it to kick the tires…wanna SEE it first.

    Here’s my situation: my wife and I need a way to CO-EDIT a calendar and schedule appointments for a project. iCal’s not cutting it since we’re BOTH adding dates. Of course, she could email or iChat me the date and I could put it on, but that is just a workaround. And we BOTH use WP for our respective blogs. Could your plugin be the answer?

    Thanks!

    Reply
  17. Garrick Post author

    That’s exactly why I created the wp-ical. Originally created for MNteractive.com, a multi-author wordpress blog, the idea was to have that’s able to post be able to add items to the ics file. So, yes, wp-ical could be the answer.

    MNteractive is going through a redesign right now and I believe the ics file is unavailable at this moment.

    Reply
  18. Pingback: MNteractive » WP-iCal Brings Back the Calendar

  19. Pingback: WiRED.Pod [Beta] » Blog Archive » Poage

  20. Pingback: Desarrollo de proyectos » Calendarios en los weblogs

  21. ooga

    i have no clue how this plugin works, are we suppose to put a link manually where people can subscribe to the ical ?

    Reply
  22. John Davis

    I just set this up for a band website, and integrated it with PHP iCalendar. The two together are incredibly elegant.

    One question: is it possible to set up recurring events? If not, may I suggest that as a feature for 1.0?

    Thanks for the great plugin.

    – John

    Reply
  23. Jamie Phelps

    Garrick,

    I am going to be creating my calendar for a church of several hundred people. In Sunbird, there is an option to save changes back to the server. Will parishioners be able to make changes to the calendar or is that only if they have the login credentials for the server? I have a test cal working on my site, but I can’t let it go live for my church until I have a response to this.

    Regards,
    Jamie

    Reply
  24. How Bowers

    Multiday (or all day) events don’t seem like they’re too big of a deal. I’ve hand-edited the .ics file iCal Event makes to get it to work.

    You simply drop the times completely from the event start and stop dates and add one day to the stop date.

    Once change I’d like to suggest is that it only tries to write or update the .ics file if the post is in the Calendar category. It seems like a waste to fire this function everytime a post is added. I had one post with two long links with lots of funky characters and the system bogged down.

    Reply
  25. Pingback: the First Crack Podcast with Garrick Van Buren » First Crack 31. The Wine Episode with Tim Elliott

  26. mindmap

    I hate broken plugins. I have uploaded the wp-ical.php into my plugins directory, and created a blank calenar.ics in the root directory of my blog.. i chmod’d the file 777 just in case. I can see the enter location field in my create post forms now, however when I add a post and add an event location.. the post creates under the category “Calendar”, however the calendar.ics remains blank..

    This really sucks, I was looking forward to this.
    Let me know whats going on please.

    mindamp
    mindamp@mindamp.org
    http://www.mindamp.org

    Reply
  27. Pingback: [Lowerbounds, Upperbounds] » Events Section

  28. Pingback: Garrick Van Buren .com » WP-iCal and WP-iPodCatter Reviewed

  29. Pingback: Jeremy Heslop » Blog Archive » first calendar test

  30. jedweb

    This sounds like a grrreat plugin. However, I’m not sure what I’m doing wrong.

    I think I have everything set up as described. The posts appear but the .ics file doesnt’t get changed. It is still empty.

    Do I need _anything_ in that file? Totally blank is correct?

    In the wp-ical.php file there is a link (34) that has a $calfile variable. Bydefault it says $calfile = urlencode(get_settings(‘blogname’)) . “.ics”;

    Should this be change to have the actual blogname? Should it be changed to be the name of the .ics file minus the extension?

    I would love to get this working. Thanks in advance for any help.

    j

    Reply
  31. Pingback: marlyse.com » WordPress iCal Event Plugin

  32. Pingback: The Journeyler » Blog Archive » Andy Skelton’s Kubrick Header Generator

  33. Jeremiah

    The plug-in is definitely also pulling in static pages into the ics file on my site. The plug-in should do an additional check to make sure the post status is not “static”.

    Maybe it’s pulling in the pages because there is only one post category on my site and WordPress sets a 0 for post_category even for static pages?

    http://www.evvyawards.org/25/EVVY25.ics is a sample file showing the static posts being included.

    Reply
  34. Jeremiah

    Correction to my last post about static pages being included in the ics file: I didn’t realize that WP stores a post’s category assignment in post2cat table. The problem is that static pages, even though they have no category assignment, are assigned the default category (usually 1). I only have one category for posts (the calendar) on my site, so all of my static pages are appearing as entries on the calendar (because calendar posts are the default category and it is the only category to have ever existed on my site). The plug-in *must* do a check to see if the post’s post_status is publish to avoid this problem.

    Reply
  35. Drolsum

    Hi!

    I am testing your calendar plug-in, and it shure looks exciting. I’ve made a empty file, equal to the Blog’s name. It works, and events is added. But,

    1. I cannot remove events – or events did not go away, when I deleted them from the blog. Any hints on this? Maybe it has something to do with:

    2. The code is wrapped to ten lines, and makes it a bit hard to read.

    3. Is it possible to make «all-day events», events that floats on top of iCal, rather than filling up all space in the program? (Was this understandable?)

    Thank you!

    Reply
  36. Pingback: Murmures dans le cyberespace

  37. Hugh

    I get this error…
    The file /homepages/24/d90228368/htdocs/cal/calendars/ The+Journeyler.ics is not writable

    what am I doing wrong the folders and the files are either chmod 777 or 666
    I have tried labeling the new calendar files as the variable in the sheet example and as “The Journeyler.ics” or as “calendar.ics”
    I am on wordpress 2.0

    Reply
  38. Jim

    Hi,

    I was wondering if there was any way to post using email and have it be entered into the Calendar. I am new to wordpress and not sure where to look to figure it out. I have a group of friends I want to be able to email a single address that would post instead of our mailing list. Then it could populate the blog, our calendars, and if they want they could subscribe to specific topics.

    It’s a nice plugin and hope this is possible. Thanks.

    Reply
  39. Pingback: [Lowerbounds, Upperbounds] » Calendar Update

  40. Pingback: Mac Web Design » MacTheWeb » iCal Resources - Sharing and More

  41. Pingback: Western Sussex CAMRA » Archive » New feature — calendar subscriptions

  42. Pingback: Computer + Internet » Google Calendar

  43. Pingback: Computer and Internet » iCal for Wordpress

  44. Pingback: Anmari Web Design » Comparison of Event Calendar Plug-ins

  45. chowsden

    I am using WP-ical to create a .ics file that is then read by a web program that displays the contents on my website in a calendar. I recently upgraded to the most recent version and now I cannot find where I can change the path to drop the .ics file where I want it. Furthermore, isn’t the new file a vcal file? Is there an option to keep it a .ics file?

    Reply
  46. daniel

    Seems like a very cool plugin. I played around with it this day and it works like a charm. Thank You! By the way are there any known issues with uptodate WP versions like 2.3.3? Is this plugin still under active development?

    Reply

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.