The Egg Timer — powered by House of Commons librarians

What to do at prorogation and dissolution

At the end of a session, Parliament prorogues. Prorogation is the formal end to the parliamentary year. At the end of a parliament period, Parliament dissolves. Dissolution is the official term for the end of a Parliament before a general election. Dissolution may be immediately preceded by a short period of prorogation.

Our Google calendars are designed to cope with periods when Parliament is in session. They allow us to state when a House is sitting, sitting virtually or adjourned. Adjournment includes non-sitting Fridays, weekends, bank holidays and recess.

The calendars are not designed to cope with periods when Parliament is either prorogued or dissolved. Upon announcement of these periods certain actions should be taken.

What to do upon the announcement of prorogation or dissolution

In both cases, action must be taken:

In the Google calendars

  1. Remove any previously created sitting or adjournment days set to take place during the prorogation or the dissolution period from the Google calendars.
  2. Check that these changes have propagated to the application. This should take no longer than 15 minutes. The calendar sync checker records when the calendar last synced.

In the Google spreadsheet

The Parliament periods spreadsheet has two sheets: one describing Parliament periods, one describing sessions.

At prorogation, you need to update the sessions sheet by applying the end date to the session being prorogued. You also need to add details for the new session, being:

The egg timer requires the Parliament number, session number and session start date. The Journal Office style citation, regnal year citation and Wikidata ID are optional.

Prorogation is announced in a proclamation which gives a start date for the prorogation period. For prorogations between sessions in a Parliament period, the proclamation also names the start date of the next session.

At dissolution, you also need to update the Parliament periods sheet by applying an end date to the Parliament being dissolved. You also need to add details for the new Parliament, being:

The egg timer requires the Parliament number and its start date. It will load the Wikidata ID of the Parliament, but this isn't necessary.

What to do upon the announcement of prorogation

In order for the application to continue to function, we need to upload a clean copy of the database with an end date for the current session and a start date for the subsequent session.

The steps are:

  1. From the Google spreadsheet, download a copy of the sessions sheet as a CSV.
  2. Copy the CSV file to db/data/sessions.csv.
  3. Remove the first - header - row of the sessions.csv.
  4. Continue by resetting the database.

What to do upon the announcement of dissolution

In order for the application to continue to function, we need to upload a clean copy of the database with an end date for the current session, a start date for the subsequent session, an end date for the current Parliament and a start date for the subsequent Parliament.

The steps are:

  1. From the Google spreadsheet, download a copy of the sessions sheet as a CSV.
  2. Copy the CSV file to db/data/sessions.csv.
  3. From the Google spreadsheet, download a copy of the Parliament periods sheet as a CSV.
  4. Copy the CSV file to db/data/parliaments.csv.
  5. Remove the first - header - row of the parliaments.csv.
  6. Continue by resetting the database.

Resetting the database

From the command line, at the root of the application:

  1. Run psql parliament_calendar < db/schema/setup.sql. This removes and recreates all tables in the local database.
  2. Run rake setup. This imports Parliament and session data and infers dissolution and prorogation data.
  3. Run heroku maintenance:on to switch the application to maintenance mode.
  4. Run heroku pg:reset --confirm parliament-egg-timer to reset the database: this removes information from the Heroku database.
  5. Run heroku pg:push parliament_calendar DATABASE_URL to push the new data to the database on Heroku.
  6. Run heroku run rake sync to sync data from the Google calendars to the application.
  7. Run heroku maintenance:off to switch the application out of maintenance mode.

Having reset the database

You can create sitting and adjournment days in the subsequent Parliament and / or session.

Use the calendar sync checker to confirm whether the application is being updated from the Google calendars.