iCalendar for English Bank Holidays

I’ve been making increasing use of Lightning (backed onto Google Calendar) recently, for both work and personal use, and being able to see bank holidays in my calendar would be very handy. But for some reason, all I can ever find is calendars for “UK Holidays”, which are pretty useless – for one thing, not all parts of the UK have the same bank holidays, and for another, they tend to include random events like Saints’ Days which aren’t “holidays” in the sense of a day off work!

So I decided to make my own calendar, showing bank holidays, in England, and nothing else. And, just for the sake of it (and because there was a very nice-looking library available), I wrote my first ever Ruby script to generate the iCal file for it! A seasoned Ruby coder will probably look at it and laugh, but hey, it works!

The dates are based on this government website, which currently has data up to 2011. The resulting files should work fine in Lightning, and as imports to Google Calendar, so feel free to “subscribe”.

Update: For those still finding this after the end of 2011, I should point out that I have been regularly updating this calendar as new dates are added to the government website, and will continue to do so whenever I think to check.

Additional Note: The best way to use these links is not to download the files themselves, but to right-click and copy the URL. Then in Lightning, or Google Calendar, or whatever other calendar you use, find the option to set up a new calendar and paste in the URL (calendar type is “iCal” if it can’t guess). That way, when I update the files (generally once a year to add the next year’s dates, but occasionally to fix a typo), it will update like any other shared calendar.


  1. Nik

    “…for both home and personal use…” Married to your work are we?

  2. Rowan

    Ooh, erm, *ahem*… You must have imagined it! ;)

  3. kie

    Great – been looking for a bank holiday only calendar. Is this likely to go offline in the future?


  4. Rowan

    Well, I obviously can’t guarantee it 100%, but I certainly intend to keep URLs on this domain permanent, so these should remain available (and updated as necessary) “for the foreseeable future”.

    Glad to be of service! :)

  5. Krivine

    Ta! (And what a shame that the Government Web site isn’t clued up enough to do this.)

  6. Tony

    Thank you! :-)

  7. Neal

    Excellent. Thanks. Was thrown a few times when I told people we could not hold a meeting because of the Bank Holiday (in Scotland) and I live in England. Doh!

  8. steve

    So New Year’s Day 2011 is on the 3rd January. I think it would be better if you changed these ‘substitute days’ to be called ‘Bank Holiday’. I’m such a halfwit I’ll probably arrange my christmas dinner for the wrong day otherwise.

  9. Rowan

    @Neal: Yeah, arranging meetings is hard enough without misleading calendars! Glad to be of service. :)

    @steve: Haha! I hadn’t thought of that, I just copied them straight from the government lists. This would have been particularly confusing for the Scottish calendar, on which the 4th January was labelled “2nd January”!

    I’ve gone through and added the word “Holiday” at the end of all the affected dates. (If anyone can think of a better label for the second Scottish New Year’s holiday than “2nd January Bank Holiday”, let me know…)

  10. Matt Gibson

    Thanks! Very handy. I keep on having my hopes raised by impending bank holidays on my calendar, only to find out they’re Scottish-only!

  11. Ben

    Brilliant, I’ve been looking all over for this. Thanks.

  12. Nigel

    Well, finding your calendar files has saved me a few hours typing and Alt-Tabing between the net and the calendar prog! Thanks Rowan, I owe you a virtual pint!

  13. Dow

    DELIGHTED to find your calendar – was amazed at how difficult it is to find an England-only ical. Many thanks!

    A poss suggestion for naming ‘offset’ hoiidays – I call mine ‘in lieu of…’, eg ‘in lieu of Christmas Day

  14. Phil

    Fantastic, thanks! I don’t really care if it’s a bank holiday in Scotland!!

  15. Paul

    Great idea, such a simple and obvious expectation, why nobody had produced one before I dont know.
    Curious as to whether it is possible to produce one that has an infinite projection of future bank hols, would probably crash my android phone though if it existed.

  16. DM

    Cheers mate, just what I was looking for.

  17. Sy

    Perfect, just what I was after and stopped me having to make one myself! Thank you!

  18. S

    Thanks, that’s great the apple one was out of date and missing the extra days off we have this year and next. Cheers!

  19. rob

    Thanks very much – exactly what i was after!

  20. Gordon

    Thank you!

  21. Jag

    This is exactly what I wish Google would publish, thanks!

  22. zoara

    I just want to add my thanks to the list. My wife just called to say this coming Monday was a bank holiday and we started making plans before realising it was Scotland only. Have subscribed her and myself to your version, so we won’t get false hopes again. Thanks!

  23. neonike

    Excellent – thanks very much! Works a treat!

  24. Ricky

    Thank you for doing this.

  25. Ricky

    Thank you for doing this.

  26. Jon

    Any chance of updating for 2012 / 2013. I have only just seen this site!

  27. Rowan

    Hi Jon,

    The calendar currently includes all the Bank Holidays up to the end of 2012; it looks like the government site lists the “expected” dates up to 2015 now, though, so I will update with those shortly. :)

  28. Matt

    This calendar gives me exactly what I want to see: bank holidays. Hope to see it updated soon, and keep up the good work.

  29. Lee

    This is great – just one suggestion – would it possible to make these “all day” events so that the start and finish times aren’t shown? Thanks!

  30. Rowan

    Hi Lee, glad you like it.

    In Thunderbird/Lightning and Google Calendar they show as “all day” for me. What application are you using, and would you be willing to do a bit of testing if I sent you some sample files to see how different variations display for you?

  31. Alex Tingle

    Just a thank you note. Keep up the good work. If you had a Google Ad, I’d click on it!

  32. alex

    Thank you! You seem to be the only person on the whole internet to have thought of this. It works a treat

  33. Alex Cleater

    Thanks so much for this! Please keep the updates coming each year!


  34. Steve Green

    Perfect! Thanks so much for this. Finally, I can get rid of those Scottish bank holidays from my iCal!

  35. Asif

    thanks first useful calender for England BH.

  36. Asif

    Can you please share calendar(google calendar) so we can use it as shared calendar and no need for u to upload after each update and for us to download and import.
    If u make only this calendar public and post link here will help us all.

    • Rowan

      Hi Asif,

      Glad it’s helpful. :)

      It’s not managed in Google Calendar, so it’s not a case of me not having shared it. If you click the arrow by “Other calendars” and select “Add by URL” instead of “Import Calendar”, it will be added to your list like a shared calendar, and updated automatically.

  37. Danny

    Hey buddy, just wanted to say thank you for taking the time to make this and keep it up to date, really helps me balance my home/worklife out.


  38. Stuart

    Hi, I’m getting error messages when trying to subscribe. Is this updated for 2018 and beyond?

    • Rowan

      Hi Stuart, the calendars were updated for all of 2018, and I’ve just added in 2019.

      I’m not seeing any errors my end, so could you let me know some more details? What calendar software / service are you using, and what’s the error message you’re seeing?

  39. Angela

    Thank you for doing this! Very useful!!

    • Visitor

      ???? Please keep updating beyond 2020 ??

  40. Alex

    Hi there. The 2020 version of these calendars has broken my calendar app.

    Last year’s had balanced DTSTART and DTEND entries, but this year’s is missing the DTEND, which is causing chaos with my libical based application.

    libical reports “missing VEVENT::DTEND property”.


    Last year’s, good:

    SUMMARY:New Year’s Day

    This year’s, bad:

    SUMMARY:New Year’s Day

    • Rowan

      Hi Alex,

      Sorry about that! I tweaked the generation script due to some system upgrades, and ended up with a slightly different format (the “;VALUE=DATE” is apparently required by the standard if not specifying a time).

      I’ve made another change to add in the DTEND field, but it’s still a slightly different format from before, so could you test and see if it works in your app now?


  41. Rowan

    Just a note to everyone that I still keep this updated whenever I remember to check the government site, and it currently has everything for 2020 and 2021.

    Note that there was a last-minute change to the Early May Bank Holiday this year, which I only fixed in the calendar yesterday. If your calendar still shows it as Monday 4th, you need to tell it to refresh/update the calendar feed.

  42. Peter Kidd

    Thnak you for this service.

    It boggles the mind that Google can’t find 5 minutes per year to provide tailored calendars for major countries like England and Scotland!

  43. Paul

    Thanks! I’ve just found this and I wanted to say I really appreciate it.

  44. Mario

    Stellar work, Rowan.

    Just to let you know, if you didn’t already, the government site now finally publishes an ICS feed directly, which should save you the work. You can find the link after all the current and future dates list: “Add bank holidays for England and Wales to your calendar (ICS, 14KB)”

  45. Joanne Rathbone

    This is brilliant!! I’ve been annoyed by the Apple calendar not having the option for only displaying England public holidays, it’s not like we aren’t well known in the world!? This has made my day ? Thank you. Thank you. Thank you

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.