Need help getting started with My Calendar? Please Buy the User’s Guide!
- Download My Calendar
- Buy the User’s Guide
- Support/FAQ
- Feature Requests
- Sample Calendar
- Make a Donation
Current Version: 1.10.12
Requires: 2.9.2
Tested to: 3.4-alpha
Downloads: 155652
Last updated: 2012-03-08
My Calendar provides event management and numerous methods to display your events. The plug-in can support individual site calendars within WordPress Multi-User, or multiple calendars displayed by categories of or locations for events.
Basic Features:
- Standard calendar grid or list views of events
- Show events in monthly, weekly, or daily view.
- Mini-calendar view for compact displays (as widget or as shortcode)
- Widget to show today's events
- Widget to show upcoming or past events
- Template tags to control the HTML and information produced in most output areas.
- Calendar can be limited to a single category, all categories, or a selection of categories
- Calendar can be limited to events in specific locations
- Disable default CSS and default JavaScript or display only on specific Pages/Posts
- Editable CSS styles and JavaScript behaviors
- Recurring events can be scheduled daily, weekly, on weekdays only, biweekly, monthly by date, monthly by day/week and annually.
- Individual occurrences of recurring events can be modified individually
- Events can be configured to be added by any level of user; directly to calendar or reserved for administrative approval
- Store and display the following information for each event: title, description, alternate description, event category, URL, start date, start time, end date, end time, registration status (open, closed or irrelevant), event location.
- Email notification to administrator when events are scheduled or reserved
- Location Manager for storing frequently used venues
- Import method from Kieran O'Shea's Calendar plugin
- Integrated Help file to guide in use of shortcodes and template tags
- User's Guide available for purchase with extensive assistance in set up and use.
This calendar branched from Kieran O'Shea's Calendar plugin in April 2010. You can import any previous scheduled events from Kieran's calendar into My Calendar.
Languages available:
- American English (Default)
- French (Frederic Escallier) - to 1.9.8
- Dutch (Luud Heck) - to 1.8.9
- Danish (Jakob Smith) - to 1.8.9
- Japanese (Daisuke Abe) - to 1.8.5
- Russian (Alex - to 1.8.5
- Turkish (Mehmet Koçali) - to 1.8.4
- German (Uwe Jonas) - to 1.7.8
- Swedish (Efva Nyberg) - to 1.7.8
- Italian (Sabir Musta) - to 1.7.0
- Czech (Jan Rybarik) - to 1.6.3
- Brazilian Portuguese (Leonardo Kfoury) - to 1.6.0?
New or updated translations are always appreciated. The translation source files are included in the download. Codestyling Localization is a great plug-in for translating plug-ins!

@Joe My header.php was missing that link and JS file. I could see the error in Firebug so thought I would give it a try.
It worked so I won’t question it.
@Paul Surprising that would fix anything - but won’t question it.
@Tony Read the FAQ. And yes, anything you’ve customized in the core files of the plug-in will be over-written in any update.
@Tony.
I fixed mine by adding the following line, which was missing:
<script type="text/javascript" src="/js/jquery.easydrag.js”>
Hope that helps.
- Paul
@Tonny.
Thanks I’ve played around and finally fixed it.
I had the google maps open into a new window when it was clicked. But the update must have overwritten it. Any ideas on how to make that happen again?
Tony
@Tony. Yes. The codes are different from different themes. I have no more ideas than I wrote, try to play around with the order of the lines in the code.
Can’t seem to show the code.
Anyway I don’t see code that looks like the code on http://www.lane.no/code-calendar/
The whole lot is different.
Tony
I just read the answers for this problem.
I looked in my header.php file and I only see this code that looks mildly familiar
<script type="text/javascript" src="/scripts/myStuff.js”>
<script type="text/javascript" src="/scripts/supersleight.plugin.js”>
var J = jQuery.noConflict();
J(document).ready(function() {J(‘body’).supersleight();});
Any ideas?
Tony
Just updated this plugin and now on the calendar, all the popups for every event are all open at the same time. http://redpaddleco.com.au/tribe/
Any ideas how to change this?
Tony
I just added the order from my theme, no, its not sure that you will have all that .js. But just try to change the order of what you have.
@Tonny Thank you for that - much appreciated. Actually, I noticed that you referenced to /js/jquery.easydrag.js. My header.php did not have that - @Joe is the plugin supposed to add that?
I added it and it fixed it. No need to reorder anything.
THANK YOU!
Sorry, delete my last 4 posts, the comment form does not let me input som much code.
@Paul Mycroft, I resolved the same problem by changing the order of the calling of the scripts in the header of the site (before ) like this:
Go here instead and look at the script order in the middle of the page (calling 8 scripts): http://www.lane.no/code-calendar/
“save user settings” did the trick for getting back to old version, thanks. i’ll keep testing against bx slider plugin w/ new version too. Please let me know if you find a solution.
Basically, new my calendar version disables the bx slider (scrolling masthead banner images) and displays them all down the page. Is it a js or jquery conflict or something? http://bxslider.com/
please advise
Cant post this correct, its first:
<script type="text/javascript" src="/js/jquery-1.6.3.min.js”>
<script type="text/javascript" src="/js/menusm.js”>
<script type="text/javascript" src="/js/custom.js”>
<script type="text/javascript" src="/js/coin-slider.min.js”>
Then you put:
Thats it.
paul, like this:
<script type="text/javascript" src="/js/jquery-1.6.3.min.js”>
<script type="text/javascript" src="/js/menusm.js”>
<script type="text/javascript" src="/js/custom.js”>
<script type="text/javascript" src="/js/coin-slider.min.js”>
@Paul Mycroft, I reolved the same problem by changing the order of the calling of the scripts in the header of the site (before ) like this:
<script type="text/javascript" src="/js/jquery-1.6.3.min.js”>
<script type="text/javascript" src="/js/menusm.js”>
<script type="text/javascript" src="/js/custom.js”>
<script type="text/javascript" src="/js/coin-slider.min.js”>
@Joe Thanks for that.
I disabled all plugins except yours and it still did not resolve. I then removed that reference to jQuery 1.3.2 in header.php and it fixed the calendar issue but broke some theme functionality. So I replaced that reference with jQuery 1.6.1 and 1.6.4, and neither of those made any difference, probably because there was a double reference to jQuery.
I have contacted the theme developer to see if they can help resolve this issue. If not, I guess it’s a new theme.
Thanks.
- Paul
@Jake It’s gone because the names of the stored settings of My Calendar were changed between version 1.8.9 and 1.9.0. 1.9.0 converts the settings, but, obviously, there’s no way to convert backwards. All you need to do is re-save your editing permissions on the Settings page.
Why is the add/edit menu item no longer available now that i reverted to previous version of my calendar, and how do i get it back?
@Jake Is ‘bx slider’ the name of a WordPress plug-in? I can look, but I’m not off hand familiar with that.
@Paul Either a plug-in or your theme is enqueuing jQuery version 1.3.2, which is displacing jQuery version 1.6.1 (the WordPress default). My Calendar doesn’t work with version 1.3.2. If you remove that script, at least on the page with your calendar, then it should work fine.
@Pete That can be configured, although it’s not just a single setting, but rather a combination of settings. I describe how to set that up in the User’s Guide
I updated to the new release in latest WP version, but it caused my bx slider not to work. I reinstalled the previous version of my calendar and now I don’t have the option to add/edit events, but everything else appears to be working.
Is there a known issue and/or fix for working with bx slider and/or how to get add/edit back in dashboard with reversion back?
Thx, Jake
@Joe. We have discovered that all calendar items are now open and overlapping the calendar.
Have you seen this before and if so, do you have an idea how to fix it? We are running WP 3.2.1.
http://www.ladysmithcofc.com/calendar/
Thanks.
I would like to have the event details open in a page rather than the jQuery ‘popup’. Is there an option for that? I have looked through the setting page but could not find anything.
Thanks,
Pete
@Joe, so I’ve now updated all the aghca.org behaviors, but the same problem exists there as on the town site. I click to close the pop-up box, and the X goes away but the box stays. I can give you admin access to the site so you can trouble-shoot if you’d like.
By the way, on both sites, I have turned off CSS compression in Atahualpa 3.6.7.
@Joe, actually, that’s not the site I’m talking about. It’s my town’s official site, under redesign, and I can’t post the development URL here. I can give it to you via email if you’d like.
@Paula You say that you’ve updated all the behavior scripts, but if I visit your site (http://aghca.org/community-calendar/), the it looks to me like only the mini-calendar script is actually up to date - the list and main calendar scripts are old versions. Are they not updating?
@Joe and Kris, I’ve updated all of the behavior scripts. I’m using 1.9.1. Still no joy. Clicking on the X removes the X itself but the box stays open.
Awesome. Thanks Joe. I updated my mini calendar behavior scripts and now the orange X is working (it now closes the box). Thanks for the great calendar script!
Same problem as Marge and Manish: using Atahualpa 3.6.7, the detail view does not close when the orange X is pressed. Macbook Air, Chrome 14.0.
@Marge You’ll need to update your Mini calendar behavior scripts in the Behaviors Editor.
@Annie Yes, that would be fine. I recommend you work from the english source, however — the Danish translation is not up to date.
Hi Joe,
I am having the same issue as Manish below where the pop up shows with the orange X which doesn’t close on clicking.
I saw your message about the patch for Atahualpa and applying it doesn’t seem to change anything. Has anything else changed?
Thanks
Hi Joe!
I would like to have Faroese lauange on my calendar front. Behind the scenes can be danish, no problem there.
How do I go about that? Should I send the my-calendar-da_DK.po to you with the words corrected to Faroese?
Best regards Annie
@Manish This can be done using a combination of behavior script editing and title template editing.
@Bjorn This was a change in version 1.8.0, about six months ago. At some point I intended to add some options for that, but haven’t done so.
@Kris You’ll need to update your Mini calendar behavior scripts in the Behaviors Editor.
@Marc Doh - you’re right. Now I’ll need to refresh my memory why that was. I know there was a good reason for restricting the available template tags in that field, but I can’t remember why exactly. You’re welcome to make a go at the programming yourself. I particularly encourage changes which can be implemented without changing the core code of the plug-in, by using filters, for example.
how to remove popup box in simple calendar ?
The latest update of My Calendar is working fine with Atahualpa 3.6.7. However, viewed in Safari on an iPhone it shows only dates with events in them. The empty dates are not there. Why is this and how can I get the normal look back?
Just upgraded to the newest version. There is now an orange X in the popup boxes. It doesn’t do anything when I click on it though. Is it supposed to close the box?
Hi Joe.
You haven’t made {date} one of the allowable options - it says:
>>Available template tags: {title}, {location}, {color}, {icon}<<
and "{date}" just comes out verbatum without translation.
Thanks for giving consideration to my other suggestion. There could be a number of clubs / societies out there that only organise occasional events themselves but may want to include a reference to a weekly external event without it 'dominating' their upcoming events list. Would you like me to have a go at programming this myself?
Thanks as ever.
@Marc Thanks, that is more clear. Is there a reason that using the template tags
{date} {title}in the template field for the details link text doesn’t do what you need it to? If you wish to modify the core code, it’s entirely your choice - but it does introduce the likelihood that a future update will overwrite your changes. Regarding the restriction on appearances of future recurring events…that’s interesting, and certainly could be done. I’ll have to think about it, though.I’m sorry but my previous comment wasn’t very clear.
I simply wanted the event date to appear in my event details link. The shortcode I posted in my last comment doesn’t do that. However, this change to “my-calendar-templates.php” does:
$details[‘details’] = ( get_option( ‘mc_uri’ ) != ” )?”” . $details[‘date’] . ” ” . $details_label . ””:”;
Is it OK to change the core code in this way?
Re my second question: I would like to restrict the amount of times a weekly recurring event shows up in ‘upcoming events’ as when I display the next five events, they are the weekly event if we don’t have any other events in the next five weeks. It would be better if it showed say, just the next two weekly recurrences followed by other events over five weeks away.
Is there an easy way to accomplish that?
Thank you very much for all your excellent work.
Hi Joe.
I’ve just upgraded to latest version and I see that you kept your promise to introduce more flexible templating. Thank you very much for that. Could you tell me though: Is it possible to include the date in the clickable text. At the moment, I’m using “{date} {link_title}” as a compromise. I thought of editing the core code to produce a “{link_date_title} variable but only want to do this as a last resort.
Also, is it possible to restrict the number of times a recurring event shows up in “upcoming events”. I’d like my weekly event to only show up two times otherwaise it can be that shows up if we limit our number to five and we don’t have any other events less than a month away…
All the best.
Marc
@Joe Dolson. Whats your email adress?
@Paula, yes, the themes functions.php. The guy who made the code for me didnt edit the plugin code because then my code would be written over by updates.
Quick note. Hide Icons now works with the latest update. Thanks Joe!
@Farshid When My Calendar says that your current time difference from GMT is 7 hours on the events page, it’s referring to the WordPress timezone settings — so, in this case, the problem is that your WordPress time zone isn’t correct. This probably relates to the effects of daylight savings time; My Calendar isn’t smart enough to detect daylight savings time, but WordPress is. Eventually, I’ll figure this out, but for now, you’ll need to adjust your WordPress time zone settings.
@Tonny Thanks for the suggestion. If you could send them to me privately, via email, I’ll get it posted in a readable format. WordPress stripped out all your HTML, which makes for some problems for anybody commenting on the code!
@Tonny: functions.php? I don’t see such a file in the plugin. Do you mean the theme’s functions.php?
joe, i upgraded the scripts. it looks cleaner now and the x in popups works. thank you. but my time zone is still not working right in the calendar. i am in CA so my blog setting time zone is set to LA. in my user profile i have set my time zone to GMT-8/pacific.
but in my calender when i look at event edit page it says “Current time difference from GMT is -7 hour(s)”. and when i view the calendar all events show up off by 1 hr in my local time zone. e.g. for 8 pm event it says it is at 7 pm in my local time zone.
so though i have set my time to gmt-8, your calendar still thinks i am at gmt-7. is this a bug or i’m missing something? thanks.
Please comment on that code if you find it useful.
I made some code letting people sign up to an event. The name of the person signing up will show in the admin, in the event description.
Short code in page/post: [my_calendar_form]
Insert into functions.php:
/**
*
*Event Calender Modification
*
*/
/**
* Get a list of events depending on the parameter /month/year
* Should not be changed or modified unless plugin changes
*
*/
function custom_get_events() {
date_i18n(“j. F” , strtotime($event->event_begin) );
global $wpdb;
$month = date(‘m’);
$year = date(‘Y’);
if ( isset($_GET[‘month’]) ){
$month = (int) $_GET[‘month’]; //sanitize variable
}
if ( isset($_GET[‘yr’]) ){
$year = (int) $_GET[‘yr’]; //sanitize variable
}
$query = sprintf(“SELECT * FROM %smy_calendar WHERE MONTH(event_begin) = %s AND YEAR(event_begin) = %s”,
$wpdb->prefix,
$month,
$year);
$event_list = $wpdb->get_results($query);
$event_html = ”;
foreach( $event_list as $event ){
$event_date = date_i18n(“j. F” , strtotime($event->event_begin) );
$event_html .= “event_id.”’>”. $event->event_title .” ({$event_date})”;
}
$event_html .= ”;
return $event_html;
}
/**
*
* Generate Event Form
*
*/
function custom_event_form() {
$content = ”;
if ($GLOBALS[‘custom_event_form_update’]){
$content .= “”;
$content .= $GLOBALS[‘custom_event_form_update’];
$content .= “”;
}
$content .=
”
Sign up on event
YOur name
Choose event ” .
custom_get_events() .
”
”;
return $content;
}
/**
* Hookup event form
*/
add_shortcode(‘my_calendar_form’,’custom_event_form’);
function custom_event_css(){
$css=”
#custom_event_form h3 {
margin:15px 5px 5px 5px;
}
#custom_event_form label,#custom_event_form input {
display:block;
margin:5px 5px 5px 5px;
}
#custom_event_form_notify {
margin:50px 0 0 0;
background-color: #EDF7FF;
border: 2px solid green;
color: #008000;
padding: 20px;
text-align: center;
}
“;
echo $css;
}
//hookup the css to head
add_action( ‘wp_head’, ‘custom_event_css’);
/**
*Input processing function
*Get input on form submit
*validate and update accordingly
*/
function custom_event_form_handler(){
global $wpdb;
if ( ! isset($_POST[‘custom_event_form_submit’]) ){
return false;
}
$event_id = (int) $_POST[‘custom_event_form_event’];
$event_name = $wpdb->escape($_POST[‘custom_event_form_name’]);
$query = sprintf(“SELECT * FROM %smy_calendar WHERE event_id = %s “,
$wpdb->prefix,
$event_id);
$results = $wpdb->get_row($query);
$desc = trim($results->event_desc);
$desc = $desc . “\n” . $event_name . ‘,’;
$query2 = sprintf(“UPDATE %smy_calendar SET event_desc = ‘%s’ WHERE event_id = ‘%s’ “,
$wpdb->prefix,
$desc,
$event_id);
$r = $wpdb->query($query2);
if ($r ){
$GLOBALS[‘custom_event_form_update’] = ‘Your name is registered’;
return true;
}else{
$GLOBALS[‘custom_event_form_update’] = ‘Your name is not registered’;
}
return false;
}
//Hookup
add_action(‘init’,’custom_event_form_handler’);
@Jakob, Tony - Thanks for following up with this, Jakob! Glad you got the problem figured out, Tony.
@Tony You can remove the category key using the shortcode - see the plugin’s “Help” page for that, or use the shortcode generator.