DateFormat=mm/dd/yyyy
Define $now = //
Define $later = 
Period = from:06/01/2007 till:$later
Define $skip = at:end # Force a blank line
Define $dayunknown = 15 # what day to use if it's actually not known
ImageSize= width:1200 height:auto barincrement:19
TimeAxis = orientation:horizontal
PlotArea = right:1 left:1 bottom:200 top:1
Colors =
 id:bg value:white
 id:lightline value:rgb
 id:lighttext value:rgb
 id:current value:rgb Legend:Still_produced
 id:scheduled value:rgb Legend:Scheduled_for_production
 
 id:phone1 value:rgb Legend:iPhone_(1st_gen)
 id:phone3g value:rgb Legend:iPhone_3G
 id:phone3gs value:rgb Legend:iPhone_3GS
 id:phone4 value:rgb Legend:iPhone_4
 id:phone4s value:rgb Legend:iPhone_4S
 id:phone5 value:rgb Legend:iPhone_5
 id:phone5s value:rgb Legend:iPhone_5S
 id:phone6 value:rgb Legend:iPhone_6-serie
 id:phone6s value:rgb Legend:iPhone_6S-serie
 id:phone7 value:rgb Legend:iPhone_7-serie
 id:phone8 value:rgb Legend:iPhone_8-serie
 id:phonex value:rgb Legend:iPhone_X
 id:phonexs value:rgb Legend:iPhone_XR_/_XS-serie
 id:phone11 value:rgb Legend:iPhone_11-serie
 id:phone12 value:rgb Legend:iPhone_12-serie
 id:phone13 value:rgb Legend:iPhone_13-serie

 id:phone5c value:rgb Legend:iPhone_5C
 id:phonese value:rgb Legend:iPhone_SE_(1st_gen)
 id:phonese2 value:rgb Legend:iPhone_SE_(2nd_gen)
 id:phonese3 value:rgb Legend:iPhone_SE_(3rd_gen)

 id:itouch1 value:rgb Legend:iPod_Touch_(1st_gen)
 id:itouch2 value:rgb Legend:iPod_Touch_(2nd_gen)
 id:itouch3 value:rgb Legend:iPod_Touch_(3rd_gen)
 id:itouch4 value:rgb Legend:iPod_Touch_(4th_gen)
 id:itouch5 value:rgb Legend:iPod_Touch_(5th_gen)
 id:itouch6 value:rgb Legend:iPod_Touch_(6th_gen)
 id:itouch7 value:rgb Legend:iPod_Touch_(7th_gen)

 id:pad1 value:rgb Legend:iPad_(1st_gen)
 id:pad2 value:rgb Legend:iPad_2
 id:pad3 value:rgb Legend:iPad_(3rd_gen)
 id:pad4 value:rgb Legend:iPad_(4th_gen)
 id:pad5 value:rgb Legend:iPad_(5th_gen)
 id:pad6 value:rgb Legend:iPad_(6th_gen)
 id:pad7 value:rgb Legend:iPad_(7th_gen)
 id:pad8 value:rgb Legend:iPad_(8th_gen)
 id:pad9 value:rgb Legend:iPad_(9th_gen)

 id:padair value:rgb Legend:iPad_Air
 id:padair2 value:rgb Legend:iPad_Air_2
 id:padair3 value:rgb Legend:iPad_Air_(3rd_gen)
 id:padair4 value:rgb Legend:iPad_Air_(4th_gen)
 id:padair5 value:rgb Legend:iPad_Air_(5th_gen)

 id:padpro value:rgb Legend:iPad_Pro_(1st_gen)
 id:padpro2 value:rgb Legend:iPad_Pro_(2nd_gen)
 id:padpro3 value:rgb Legend:iPad_Pro_(3rd_gen)
 id:padpro4 value:rgb Legend:iPad_Pro_(4th_gen)
 id:padpro5 value:rgb Legend:iPad_Pro_(5th_gen)

 id:mini1 value:rgb Legend:iPad_Mini_(1st_gen)
 id:mini2 value:rgb Legend:iPad_Mini_2
 id:mini3 value:rgb Legend:iPad_Mini_3
 id:mini4 value:rgb Legend:iPad_Mini_4
 id:mini5 value:rgb Legend:iPad_Mini_(5th_gen)
 id:mini6 value:rgb Legend:iPad_Mini_(6th_gen)

 id:tv2 value:rgb Legend:Apple_TV_(2nd_gen)
 id:tv3 value:rgb Legend:Apple_TV_(3rd_gen)
 id:tvhd value:rgb Legend:Apple_TV_HD
 id:tv4k value:rgb Legend:Apple_TV_4K

 id:watch value:rgb Legend:Apple_Watch
 id:watch1 value:rgb Legend:Apple_Watch_Series_1
 id:watch2 value:rgb Legend:Apple_Watch_Series_2
 id:watch3 value:rgb Legend:Apple_Watch_Series_3
 id:watch4 value:rgb Legend:Apple_Watch_Series_4
 id:watch5 value:rgb Legend:Apple_Watch_Series_5
 id:watch6 value:rgb Legend:Apple_Watch_Series_6
 id:watch7 value:rgb Legend:Apple_Watch_Series_7

 id:watchse value:rgb Legend:Apple_Watch_SE

BackgroundColors = canvas:bg
ScaleMajor = gridcolor:lighttext unit:year increment:1 start:01/01/2008
ScaleMinor = gridcolor:lightline unit:month increment:1 start:06/01/2007
Legend = orientation:vertical position:bottom columns:1

BarData = 
 barset:phone
 barset:phonese
 barset:itouch
 barset:ipad
 barset:ipadair
 barset:ipadpro
 barset:mini
 barset:tv
 barset:watch
 barset:watchse

PlotData=
 width:15 textcolor:black shift: anchor:from fontsize:s

 barset:phone
 color:phone1 from:06/29/2007 till:07/11/2008 text:"iPhone"
 barset:break
 color:phone3g from:07/11/2008 till:06/07/2010 text:"3G"
 color:phone3gs from:06/19/2009 till:09/12/2012 text:"3GS"
 color:phone4 from:06/24/2010 till:09/10/2013 text:"4"
 color:phone4s from:10/14/2011 till:09/09/2014 text:"4S"
 color:phone5 from:09/21/2012 till:09/10/2013 text:"5"
 barset:break
 $skip
 $skip
 $skip
 $skip
 color:phone5s from:09/20/2013 till:03/21/2016 text:"5S"
 color:phone6 from:09/19/2014 till:09/07/2016 text:"6 / Plus"
 barset:break
 $skip
 $skip
 $skip
 $skip
 $skip
 color:phone6 from:03/10/2017 till:09/12/2017 text:"6"
 color:phone6s from:09/25/2015 till:09/12/2018 text:"6S / Plus"
 color:phone7 from:09/16/2016 till:09/19/2019 text:"7 / Plus"
 color:phone8 from:09/22/2017 till:04/24/2020 text:"8 / Plus"
 color:phonex from:11/03/2017 till:09/12/2018 text:"X"
 barset:break
 $skip
 $skip
 $skip
 $skip
 $skip
 $skip
 $skip
 $skip
 $skip
 $skip
 color:phonexs from:09/21/2018 till:09/10/2019 text:"XS / Max"
 color:phonexs from:10/26/2018 till:$now text:"XR"
 color:phone11 from:09/20/2019 till:$now text:"11"
 color:phone11 from:09/20/2019 till:10/13/2020 text:"Pro / Max"
 color:phone12 from:11/13/2020 till:$now text:"12 Mini"
 color:phone12 from:10/23/2020 till:$now text:"12"
 color:phone12 from:10/23/2020 till:09/14/2021 text:"12 Pro"
 color:phone12 from:11/13/2020 till:09/14/2021 text:"12 Pro Max"
 color:phone13 from:09/24/2021 till:$now text:"13 / Mini]]
 color:phone13 from:09/24/2021 till:$now text:"13 Pro / Max
 barset:break
 $skip
 $skip
 $skip
 $skip
 $skip
 $skip
 $skip
 $skip
 $skip
 $skip
 $skip
 $skip
 color:phone11 from:10/13/2020 till:$now text:"11"
 $skip
 $skip
 barset:break
 $skip
 $skip
 $skip
 $skip
 $skip
 $skip
 $skip
 $skip
 $skip
 $skip
 $skip
 $skip
 color:current from:$now till:end
 color:current from:$now till:end
 color:current from:$now till:end

 barset:phonese
 $skip
 color:phone5c from:09/20/2013 till:09/09/2015 text:"5C"
 barset:break
 $skip
 color:phonese from:03/31/2016 till:09/12/2018 text:"SE (1st)"
 barset:break
 $skip
 color:phonese2 from:04/24/2020 till:03/08/2022 text:"SE (2nd)"
 barset:break
 $skip
 color:phonese3 from:03/18/2022 till:$now text:"SE (3rd)"
 barset:break
 $skip
 color:current from:$now till:end
 
 barset:itouch
 $skip
 color:itouch1 from:09/05/2007 till:09/09/2008 text:"iPod Touch (1st)"
 barset:break
 $skip
 color:itouch2 from:09/09/2008 till:09/01/2010 text:"Touch (2nd)"
 color:itouch3 from:09/09/2009 till:09/01/2010 text:"Touch (3rd)"
 barset:break
 $skip
 $skip
 color:itouch4 from:09/01/2010 till:09/12/2012 text:"Touch (4th)"
 barset:break
 $skip
 $skip
 color:itouch5 from:10/11/2012 till:07/15/2015 text:"Touch (5th)"
 barset:break
 $skip
 $skip
 color:itouch6 from:07/15/2015 till:05/28/2019 text:"Touch (6th)"
 barset:break
 $skip
 $skip
 color:itouch7 from:05/28/2019 till:$now text:"Touch (7th)"
 barset:break
 $skip
 $skip
 color:current from:$now till:end
 
 barset:ipad
 $skip
 color:pad1 from:04/03/2010 till:03/02/2011 text:"iPad (1st)"
 barset:break
 $skip
 color:pad2 from:03/11/2011 till:03/18/2014 text:"2"
 color:pad3 from:03/16/2012 till:10/23/2012 text:"(3rd)"
 barset:break
 $skip
 $skip
 color:pad4 from:11/02/2012 till:10/22/2013 text:"(4th)"
 barset:break
 $skip
 $skip
 color:pad4 from:03/18/2014 till:10/16/2014 text:"(4th)"
 barset:break
 $skip
 $skip
 color:pad5 from:03/24/2017 till:03/27/2018 text:"(5th)"
 barset:break
 $skip
 $skip
 color:pad6 from:03/27/2018 till:09/25/2019 text:"(6th)"
 barset:break
 $skip
 $skip
 color:pad7 from:09/25/2019 till:09/18/2020 text:"(7th)"
 barset:break
 $skip
 $skip
 color:pad8 from:09/18/2020 till:09/24/2021 text:"(8th)"
 barset:break
 $skip
 $skip
 color:pad9 from:09/24/2021 till:$now text:"(9th)"
 barset:break
 $skip
 $skip
 color:current from:$now till:end
 
 barset:ipadair
 $skip
 color:padair from:11/01/2013 till:03/21/2016 text:"iPad Air (1st)"
 color:padair2 from:10/24/2014 till:03/21/2017 text:"Air 2"
 barset:break
 $skip
 $skip
 color:padair3 from:03/28/2019 till:09/18/2020 text:"Air (3rd)"
 barset:break
 $skip
 $skip
 color:padair4 from:10/23/2020 till:03/08/2022 text:"Air (4th)"
 barset:break
 $skip
 $skip
 color:padair5 from:03/18/2022 till:$now text:"Air (5th)"
 barset:break
 $skip
 $skip
 color:current from:$now till:end
 
 barset:ipadpro
 $skip
 color:padpro from:03/31/2016 till:06/05/2017 text:"iPad Pro 9.7"
 $skip
 $skip
 color:padpro from:11/11/2015 till:06/05/2017 text:"iPad Pro 12.9 (1st)"
 barset:break
 $skip
 $skip
 color:padpro2 from:06/05/2017 till:03/26/2019 text:"Pro 10.5"
 $skip
 color:padpro2 from:06/05/2017 till:10/30/2018 text:"Pro 12.9 (2nd)"
 barset:break
 $skip
 $skip
 $skip
 color:padpro3 from:11/07/2018 till:03/18/2020 text:"Pro 11 (1st)"
 color:padpro3 from:11/07/2018 till:03/18/2020 text:"Pro 12.9 (3rd)"
 barset:break
 $skip
 $skip
 $skip
 color:padpro4 from:03/25/2020 till:$now text:"Pro 11 (2nd)"
 color:padpro4 from:03/25/2020 till:$now text:"Pro 12.9 (4th)"
 barset:break
 $skip
 $skip
 $skip
 color:padpro4 from:05/21/2021 till:$now text:"Pro 11 (3rd)"
 color:padpro4 from:05/21/2021 till:$now text:"Pro 12.9 (5th)"
 barset:break
 $skip
 $skip
 $skip
 color:current from:$now till:end
 color:current from:$now till:end

 barset:mini
 $skip
 color:mini1 from:11/02/2012 till:06/19/2015 text:"iPad Mini (1st)"
 color:mini2 from:11/12/2013 till:03/21/2017 text:"Mini 2"
 color:mini3 from:10/24/2014 till:09/09/2015 text:"Mini 3"
 barset:break
 $skip
 $skip
 $skip
 color:mini4 from:09/09/2015 till:03/27/2019 text:"Mini 4"
 barset:break
 $skip
 $skip
 $skip
 color:mini5 from:03/28/2019 till:$now text:"Mini (5th)"
 barset:break
 $skip
 $skip
 $skip
 color:mini6 from:09/21/2021 till:$now text:"Mini (6th)"
 barset:break
 $skip
 $skip
 $skip
 color:current from:$now till:end

 barset:tv
 $skip
 color:tv2 from:09/01/2010 till:03/07/2012 text:"Apple TV (2nd)"
 barset:break
 $skip
 color:tv3 from:03/07/2012 till:03/10/2013 text:"TV (3rd)"
 color:tv3 from:01/28/2013 till:09/08/2016 text:"TV (3rd rev A)"
 color:tvhd from:10/30/2015 till:$now text:"TV HD"
 color:tv4k from:09/22/2017 till:$now text:"TV 4K"
 barset:break
 $skip
 $skip
 $skip
 color:current from:$now till:end
 color:current from:$now till:end

 barset:watch
 $skip
 color:watch from:04/24/2015 till:09/07/2016 text:"Apple Watch"
 barset:break
 $skip
 color:watch1 from:09/16/2016 till:09/12/2018 text:"Series 1"
 color:watch2 from:09/16/2016 till:09/12/2017 text:"Series 2"
 barset:break
 $skip
 $skip
 color:watch3 from:09/12/2017 till:$now text:"Series 3"
 color:watch4 from:09/21/2018 till:09/10/2019 text:"Series 4
 barset:break
 $skip
 $skip
 $skip
 color:watch5 from:09/20/2019 till:09/18/2020 text:"Series 5
 barset:break
 $skip
 $skip
 $skip
 color:watch6 from:09/18/2020 till:$now text:"Series 6
 barset:break
 $skip
 $skip
 $skip
 color:watch7 from:10/15/2021 till:$now text:"Series 7
 barset:break
 $skip
 $skip
 color:current from:$now till:end
 color:current from:$now till:end
 barset:watchse
 $skip
 color:watchse from:09/18/2020 till:$now text:"Watch SE"
 barset:break
 $skip
 color:current from:$now till:end