diff --git a/app/models/host.rb b/app/models/host.rb
index d7dab57..003c507 100644
--- a/app/models/host.rb
+++ b/app/models/host.rb
@@ -1,375 +1,376 @@
 # The bacula database must be independent from all of our application logic.
 # For this reason we have Host which is the application equivalent of a Bacula Client.
 #
 # A host is being created from our application. When it receives all the configuration
 # which is required it gets dispatched to bacula through some configuration files. After
 # that, a client with the exact same config is generated by bacula.
 class Host < ActiveRecord::Base
   establish_connection ARCHIVING_CONF
 
   include Configuration::Host
 
   STATUSES = {
     pending: 0,
     configured: 1,
     dispatched: 2,
     deployed: 3,
     updated: 4,
     redispatched: 5,
     for_removal: 6,
     inactive: 7,
     blocked: 8
   }
 
   # The default file daemon port
   DEFAULT_PORT = 9102
 
   enum origin: { institutional: 0, vima: 1, okeanos: 2 }
   serialize :email_recipients, JSON
 
+  has_many :simple_configurations
   has_many :ownerships
   has_many :users, through: :ownerships, inverse_of: :hosts
   has_many :invitations
 
   belongs_to :client, class_name: :Client, foreign_key: :name, primary_key: :name
   belongs_to :verifier, class_name: :User, foreign_key: :verifier_id, primary_key: :id
 
   has_many :filesets, dependent: :destroy
   has_many :job_templates, dependent: :destroy
   has_many :schedules, dependent: :destroy
 
   validates :file_retention, :job_retention,
     :port, :password, presence: true
   validates :port, :quota, numericality: { greater_than: 0 }
 
   validates :fqdn, presence: true, uniqueness: true
 
   validate :fqdn_format
 
   validate :valid_recipients
 
   scope :not_baculized, -> {
     joins("left join #{Client.table_name} on #{Client.table_name}.Name = hosts.name").
       where(Client.table_name => { Name: nil })
   }
 
   scope :in_bacula, -> {
     where(
       status: STATUSES.select { |k,_|
         [:deployed, :updated, :redispatched, :for_removal].include? k
       }.values
     )
   }
 
   scope :unverified, -> { where(verified: false) }
 
   before_validation :set_retention, :unset_baculized, :sanitize_name,
     :sanitize_email_recipients, :set_password, :set_port
 
   state_machine :status, initial: :pending do
     STATUSES.each do |status_name, value|
       state status_name, value: value
     end
 
     after_transition [:dispatched, :redispatched, :configured, :updated] => :deployed do |host|
       host.job_templates.enabled.
         update_all(baculized: true, baculized_at: Time.now, updated_at: Time.now)
     end
 
     event :add_configuration do
       transition [:pending, :dispatched, :inactive] => :configured
     end
 
     event :dispatch do
       transition :configured => :dispatched
     end
 
     event :redispatch do
       transition :updated => :redispatched
     end
 
     event :set_deployed do
       transition [:dispatched, :redispatched, :configured, :updated] => :deployed
     end
 
     event :change_deployed_config do
       transition [:deployed, :redispatched, :for_removal] => :updated
     end
 
     event :mark_for_removal do
       transition [:dispatched, :deployed, :updated, :redispatched] => :for_removal
     end
 
     event :set_inactive do
       transition [:deployed, :dispatched, :updated, :redispatched] => :inactive
     end
 
     event :disable do
       transition all => :pending
     end
 
     event :block do
       transition all - [:blocked] => :blocked
     end
 
     event :unblock do
       transition :blocked => :pending
     end
   end
 
   # API serializer
   # Override `as_json` method to personalize for API use.
   def as_json(opts={})
     if for_api = opts.delete(:for_api)
       api_json
     else
       super(opts)
     end
   end
 
   # Determines if a host has enabled jobs in order to be dispatched to Bacula
   #
   # @return [Boolean]
   def bacula_ready?
     job_templates.enabled.any?
   end
 
   # Shows the host's auto_prune setting
   def auto_prune_human
     client_settings[:autoprune]
   end
 
   # Uploads the host's config to bacula
   # Reloads bacula server
   #
   # It updates the host's status accordingly
   def dispatch_to_bacula
     return false if not needs_dispatch?
     bacula_handler.deploy_config
   end
 
   # Removes a Host from bacula configuration.
   # Reloads bacula server
   #
   # If all go well it changes the host's status and returns true
   #
   # @param force[Boolean] forces removal
   def remove_from_bacula(force=false)
     return false if not (force || needs_revoke?)
     bacula_handler.undeploy_config
   end
 
   # Restores a host's backup to a preselected location
   #
   # @param fileset_id[Integer] the desired fileset
   # @param location[String] the desired restore location
   # @param restore_point[Datetime] the desired restore_point datetime
   def restore(file_set_id, location, restore_point=nil)
     return false if not restorable?
     job_ids = client.get_job_ids(file_set_id, restore_point)
     file_set_name = FileSet.find(file_set_id).file_set
     bacula_handler.restore(job_ids, file_set_name, restore_point, location)
   end
 
   # Runs the given backup job ASAP
   def backup_now(job_name)
     bacula_handler.backup_now(job_name)
   end
 
   # Disables all jobs and sends the configuration to Bacula
   def disable_jobs_and_update
     job_templates.update_all(enabled: false)
     bacula_handler.deploy_config
   end
 
   # Disables all jobs if needed and then locks the host
   def disable_jobs_and_lock
     return false if can_set_inactive? && !disable_jobs_and_update
     block
   end
 
   # Determinex weather a host:
   #
   # * has all it takes to be deployed but
   # * the config is not yet sent to bacula
   #
   # @return [Boolean]
   def needs_dispatch?
     verified? && (can_dispatch? || can_redispatch?)
   end
 
   # Determines weather a host is marked for removal
   #
   # @return [Boolean]
   def needs_revoke?
     for_removal?
   end
 
   # Handles the host's job changes by updating the host's status
   def recalculate
     add_configuration || change_deployed_config
   end
 
   # Fetches an info message concerning the host's deploy status
   def display_message
     if !verified?
       { message: 'Your host needs to be verified by an admin', severity: :alert }
     elsif pending?
       { message: 'client not configured yet', severity: :alert }
     elsif configured? || dispatched?
       { message: 'client not deployed to Bacula', severity: :alert }
     elsif updated? || redispatched?
       { message: 'client configuration changed, deploy needed', severity: :alert }
     elsif for_removal?
       { message: 'pending client configuration withdraw', severity: :error }
     elsif inactive?
       { message: 'client disabled', severity: :alert }
     elsif blocked?
       { message: 'client disabled by admin.', severity: :error }
     end
   end
 
   # Determines if a host can issue a restore job.
   #
   # @return [Boolean] true if the host's client can issue a restore job
   def restorable?
     client.present? && client.is_backed_up?
   end
 
   # @return [User] the first of the host's users
   def first_user
     users.order('ownerships.created_at asc').first
   end
 
   # Marks the host as verified and sets the relevant metadata
   #
   # @param admin_verifier[Integer] the verifier's id
   def verify(admin_verifier)
     self.verified = true
     self.verifier_id = admin_verifier
     self.verified_at = Time.now
     recipients = users.pluck(:email)
     if save
       UserMailer.notify_for_verification(recipients, name).deliver if recipients.any?
       return true
     end
     false
   end
 
   # Determines if a host can be disabled or not.
   # Equivalent to is_deployed
   #
   # @return [Boolean]
   def can_be_disabled?
     dispatched? || deployed? || updated? || redispatched?
   end
 
   # Determines if a host is inserted manually from the user or
   #  provided as an option from a list by the system via a third party
   #  like ViMa or Okeanos
   #
   #  @return [Boolean]
   def manually_inserted?
     institutional?
   end
 
   # Resets the hosts token
   #
   # @return [Boolean]
   def recalculate_token
     self.password = token
     save
   end
 
   private
 
   # automatic setters
 
   def sanitize_name
     self.name = fqdn
   end
 
   # Sets the file and job retention according to the global settings
   def set_retention
     self.file_retention = client_settings[:file_retention]
     self.file_retention_period_type = client_settings[:file_retention_period_type]
     self.job_retention = client_settings[:job_retention]
     self.job_retention_period_type = client_settings[:job_retention_period_type]
   end
 
   def unset_baculized
     self.baculized = false if new_record?
     true
   end
 
   def sanitize_email_recipients
     self.email_recipients.reject!(&:blank?)
   end
 
   def set_password
     return true if persisted?
 
     self.password = token
   end
 
   def token
     Digest::SHA256.hexdigest(
       Time.now.to_s + Rails.application.secrets.salt + fqdn.to_s
     )
   end
 
   def set_port
     return true if persisted?
 
     self.port = DEFAULT_PORT
   end
 
   # validation
 
   def fqdn_format
     regex = /(?=^.{4,253}$)(^((?!-)[a-zA-Z0-9-]{1,63}(?<!-)\.)+[a-zA-Z]{2,63}$)/
     unless fqdn =~ regex
       self.errors.add(:fqdn)
     end
   end
 
   def valid_recipients
     if !email_recipients.all? { |email| email =~ /\A([^@\s]+)@((?:[-a-z0-9]+\.)+[a-z]{2,})\z/i }
       self.errors.add(:email_recipients)
     end
   end
 
   # Handles the returned attribues for api
   #
   # @return [Hash] of the desired attributes for api use
   def api_json
     {
       id: id,
       name: name,
       uname: client.uname,
       port: port,
       file_retention: "#{file_retention} #{file_retention_period_type}",
       job_retention: "#{job_retention} #{job_retention_period_type}",
       quota: quota,
       last_backup: client.last_job_datetime,
       files: client.files_count,
       space_used: client.backup_jobs_size,
       collaborators: email_recipients,
       backup_jobs: job_templates.enabled.backup.map(&:api_json),
       restorable_filesets: client.file_sets.map(&:api_json)
     }
   end
 
   # Proxy object for handling bacula directives
   def bacula_handler
     BaculaHandler.new(self)
   end
 
   # Fetches and memoizes the general configuration settings for Clients
   #
   # @see ConfigurationSetting.current_client_settings
   # @return [Hash] containing the settings
   def client_settings
     @client_settings ||= ConfigurationSetting.current_client_settings
   end
 end
diff --git a/app/models/simple_configuration.rb b/app/models/simple_configuration.rb
new file mode 100644
index 0000000..e5e8ede
--- /dev/null
+++ b/app/models/simple_configuration.rb
@@ -0,0 +1,21 @@
+class SimpleConfiguration < ActiveRecord::Base
+  establish_connection ARCHIVING_CONF
+
+  DAYS = {
+      monday: :mon,
+      tuesday: :tue,
+      wednesday: :wed,
+      thursday: :thu,
+      friday: :fri,
+      saturday: :sat,
+      sunday: :sun
+  }
+
+  enum day: { monday: 0, tuesday: 1, wednesday: 2, thursday: 3, friday: 4, saturday: 5, sunday: 6 }
+
+  belongs_to :host
+
+  validates :host, :day, :hour, :minute, presence: true
+  validates :hour, numericality: { greater_than_or_equal: 0, less_then: 24 }
+  validates :minute, numericality: { greater_than_or_equal: 0, less_then: 60 }
+end
diff --git a/db/migrate/20161126164445_create_simple_configurations_table.rb b/db/migrate/20161126164445_create_simple_configurations_table.rb
new file mode 100644
index 0000000..1a181c8
--- /dev/null
+++ b/db/migrate/20161126164445_create_simple_configurations_table.rb
@@ -0,0 +1,11 @@
+class CreateSimpleConfigurationsTable < ActiveRecord::Migration
+  def change
+    create_table :simple_configurations do |t|
+      t.integer :host_id
+      t.integer :day, limit: 1, null: false
+      t.integer :hour, limit: 1, null: false
+      t.integer :minute, limit: 1, null: false
+      t.timestamps
+    end
+  end
+end
diff --git a/db/schema.rb b/db/schema.rb
index d6d5c2d..648c7c4 100644
--- a/db/schema.rb
+++ b/db/schema.rb
@@ -1,141 +1,150 @@
 # encoding: UTF-8
 # This file is auto-generated from the current state of the database. Instead
 # of editing this file, please use the migrations feature of Active Record to
 # incrementally modify your database, and then regenerate this schema definition.
 #
 # Note that this schema.rb definition is the authoritative source for your
 # database schema. If you need to create the application database on another
 # system, you should be using db:schema:load, not running all the migrations
 # from scratch. The latter is a flawed and unsustainable approach (the more migrations
 # you'll amass, the slower it'll run and the greater likelihood for issues).
 #
 # It's strongly recommended that you check this file into your version control system.
 
-ActiveRecord::Schema.define(version: 20160912175151) do
+ActiveRecord::Schema.define(version: 20161126164445) do
 
   create_table "configuration_settings", force: true do |t|
     t.string   "job",        default: "{}"
     t.string   "client",     default: "{}"
     t.datetime "created_at"
     t.datetime "updated_at"
     t.string   "pool",       default: "{}"
   end
 
   create_table "faqs", force: true do |t|
     t.string   "title"
     t.text     "body"
     t.integer  "priority",   default: 0
     t.datetime "created_at"
     t.datetime "updated_at"
   end
 
   create_table "filesets", force: true do |t|
     t.string   "name"
     t.integer  "host_id"
     t.text     "exclude_directions"
     t.text     "include_directions"
     t.datetime "created_at"
     t.datetime "updated_at"
   end
 
   add_index "filesets", ["host_id"], name: "index_filesets_on_host_id", using: :btree
 
   create_table "hosts", force: true do |t|
     t.binary   "name",                       limit: 255,                     null: false
     t.binary   "fqdn",                       limit: 255,                     null: false
     t.integer  "port",                                                       null: false
     t.integer  "file_retention",                                             null: false
     t.integer  "job_retention",                                              null: false
     t.datetime "created_at"
     t.datetime "updated_at"
     t.string   "password"
     t.boolean  "baculized",                              default: false,     null: false
     t.datetime "baculized_at"
     t.integer  "status",                     limit: 1,   default: 0
     t.integer  "client_id"
     t.boolean  "verified",                               default: false
     t.datetime "verified_at"
     t.integer  "verifier_id"
     t.string   "job_retention_period_type"
     t.string   "file_retention_period_type"
     t.integer  "origin",                     limit: 1
     t.string   "email_recipients",                       default: "[]"
     t.integer  "quota",                      limit: 8,   default: 104857600
   end
 
   add_index "hosts", ["name"], name: "index_hosts_on_name", unique: true, length: {"name"=>128}, using: :btree
 
   create_table "invitations", force: true do |t|
     t.integer  "user_id"
     t.integer  "host_id"
     t.string   "verification_code"
     t.datetime "created_at"
     t.datetime "updated_at"
   end
 
   add_index "invitations", ["user_id", "verification_code"], name: "index_invitations_on_user_id_and_verification_code", using: :btree
 
   create_table "job_templates", force: true do |t|
     t.string   "name",                                             null: false
     t.integer  "job_type",               limit: 1
     t.integer  "host_id"
     t.integer  "fileset_id"
     t.integer  "schedule_id"
     t.datetime "created_at"
     t.datetime "updated_at"
     t.boolean  "enabled",                          default: true
     t.binary   "restore_location"
     t.boolean  "baculized",                        default: false
     t.datetime "baculized_at"
     t.string   "client_before_run_file"
     t.string   "client_after_run_file"
   end
 
   create_table "ownerships", force: true do |t|
     t.integer  "user_id"
     t.integer  "host_id"
     t.datetime "created_at"
     t.datetime "updated_at"
   end
 
   create_table "schedule_runs", force: true do |t|
     t.integer  "schedule_id"
     t.integer  "level",       limit: 1
     t.string   "month"
     t.string   "day"
     t.string   "time"
     t.datetime "created_at"
     t.datetime "updated_at"
   end
 
   add_index "schedule_runs", ["schedule_id"], name: "index_schedule_runs_on_schedule_id", using: :btree
 
   create_table "schedules", force: true do |t|
     t.string  "name"
     t.string  "runs"
     t.integer "host_id"
   end
 
   add_index "schedules", ["host_id"], name: "index_schedules_on_host_id", using: :btree
 
+  create_table "simple_configurations", force: true do |t|
+    t.integer  "host_id"
+    t.integer  "day",        limit: 1, null: false
+    t.integer  "hour",       limit: 1, null: false
+    t.integer  "minute",     limit: 1, null: false
+    t.datetime "created_at"
+    t.datetime "updated_at"
+  end
+
   create_table "users", force: true do |t|
     t.string   "username",                                   null: false
     t.string   "email"
     t.integer  "user_type",        limit: 1,                 null: false
     t.boolean  "enabled",                    default: false
     t.datetime "created_at"
     t.datetime "updated_at"
     t.string   "identifier"
     t.string   "password_hash"
     t.datetime "login_at"
     t.datetime "hosts_updated_at"
     t.string   "temp_hosts",                 default: "[]"
     t.string   "token"
     t.boolean  "moderator",                  default: false
   end
 
   add_index "users", ["identifier"], name: "index_users_on_identifier", using: :btree
   add_index "users", ["password_hash"], name: "index_users_on_password_hash", using: :btree
   add_index "users", ["token"], name: "index_arch.users_on_token", using: :btree
 
 end